账户
查看账户
#id查看的是当前登录账户的id信息
uid=0(root)gid=0(root) 组=0(root)
uid系统用来识别账户的user identify(从0开始,默认500以内的是系统账户,500及以上是普通账户,默认最大到60000)
gid系统用来识别组的group identify(从0开始,默认500以内的是系统组,500及以上是普通组,默认最大到60000)
uid=0(root)gid=0(root) 组=0(root)...
主属组附属组
(identify)
#id user1 查看user1这个账户的id信息
#whoami查看现在所使用的账户
#cat/etc/passwd账户的基本信息都在该文件中
root:x:0:0:root:/root:/bin/bash
用户名称代表密码uidgid账户的描述信息家目录登录shell
用户
新建用户
#useradd [参数] ... 用户名称
在新建账户的同时会产生一个同名的组,会在home下创建一个跟用户同名的家目录
-d 指定家目录useradd -d /home/user1user2
-g 指定giduseradd -g 888 user1
-u 指定uiduseradd -u 777 user1(如果uid已经存在,则需要加-o)
-c 指定描述字段useradd -c thisisnew user1
-s 指定登录shell useradd -s /bin/bash user1 指定user1的登录shell为/bin/bash(在/etc/shells里面有可用shell)
-M 不创建家目录useradd -M user2 创建user2账户,但是不会在home下面生成家目录
修改用户
1.修改passwd文件,这个文件里面除了密码能删除不能直接修改之外,其他字段全部都能直接修改
2.usermod
-l更改帐号usermod -l user1 user2 把user2改成user1
-u uid usermod -u 666 user1
-g gid usermod -g 777 user1 该777必须存在,才能进行修改
-L锁定帐号锁定帐号,使其在终端模式下不可登录
-U解锁帐号
-d修该家目录相当于在passwd中修改家目录
-s修改登录shellusermod -s /bin/sh user1 修改user1的登录shell为/bin/sh
-c修改描述usermod -c thisisnew user1 修改user1的描述
给用户设置密码
#passwd
给当前登录的账户设置密码(所有人可用,但是普通账户不能给自己设置初始密码)
[user11@localhost user5]$ passwd
更改用户 user11 的密码。
为 user11 更改 STRESS 密码。
(当前)UNIX 密码:
passwd: 鉴定令牌操作错误
#passwd 用户名称只适用于root账户
锁定密码#passwd -l 账户名称
解锁密码#passwd -u 账户名称
如果锁定帐号,密码会跟着锁定,可以使用解锁密码的方法解锁。如果锁定密码,则与账号无关
查看密码状态
#passwd -S 账户名称
密码信息
/etc/shadow影子文件 (所有字段都可一手动修改)
daemon:*:15615:0:99999:7:::
用户名加密密码天数(1970.1.1)密码的生存周期失效时间警告时间
最后一次修改密码的时间,从1970.1.1(unix元年)到现在的时间
密码生存周期:两次密码修改之间的最小间隔
密码的有效期:用天数表示,从1970.1.1到密码过期的天数
警告时间:密码过期之前的警告时间
密码有效期
帐号有效期
预留字段
普通账户不能查看shadow文件
修改密码信息:#chage[参数]用户
/etc/shadow
删除账户
#userdel -r 用户名称删除账户的所有信息(家目录,个人邮箱 ...)
切换账户
#su- 账户名称(加-会进入家目录,不加-会出现一些问题)
组
创建组
#groupadd 组名
#groupadd -g gid组名(如果gid已经存在,则需要-o)
查看组
#cat /etc/group
yuxin:x:670:
组名组密码 gid组员
#groups 用户名称查看一个用户属于哪个组
修改组
#groupmod -g 组名修改gid
#groupmod -n 组名1 组名2把组名2改成组名1
#groupmod -o 组名更改不唯一的组名
给组设置密码
#gpasswd [参数] 组名
从组里面删除账户
#gpasswd -d user10 grp2 从grp2中删除user10
[root@localhost Desktop]#id user11
uid=669(user11)gid=669(user11) 组=669(user11),555(user2),557(user3)
[root@localhost Desktop]#gpasswd -d user11 user3
Removing user user11 fromgroup user3
[root@localhost Desktop]#id user11
uid=669(user11)gid=669(user11) 组=669(user11),555(user2)
给组添加账户
#gpasswd -a user10 grp2添加用户的附属组
#usermod -G 组名用户名修改用户附属组
指定组管理员
#gpasswd -A user12 grp2
#cat /etc/gshadow
user2:!:user11:user11
组名:密码:组管理员:组员
删除组
#groupdel 组名删除该组
用户的主属组不能删除
#chgrp grp1 a.txt 更改a.txt的组为grp1
权限:用户对文件的操作权限
文件的所有者和所属组
#chown 用户文件修改文件的所有者
#chown {.|:}组文件修改文件的所属组
#chown 用户 {.|:}组文件修改文件的所有者和所属组
-R recoursive 递归修改,修改目录的时候需要加-R,连带目录的所有子文件一起修改
ugo权限
user group other
read write execute
权限修改:
#chmod 权限文件#chmod u+x a.txt
#chmod u+w,g-w文件一起更改中间用,隔开
#chmod a-r 文件把文件所有的属性都-r
4=r 2=w 1=x
隐藏权限(为了防止root账户误删除)
#lsattr a.txt 查看该文件的隐藏权限
#chattr +a a.txtroot账户不能删除(可追加文件内容)
#chattr -a a.txt
#chattr +i a.txtroot账户不能删除(只能查看该文件)
#chattr -i a.txt
高级权限:suid sgidsticky(t) facl
suid:
#chmod 4755 /bin/cat 给cat提权
#chmod u+s /bin/cat
suid只能给命令添加,当给命令添加了suid之后,后面再有人去执行这个命令的时候就会拥有命令操作符所有者的权限
#cat a.txt a.txt为命令操作符
sgid:
#chmod 2755 目录更改目录为以后继承
#chmod g+s 目录
#chmod g-s 目录删除组继承
sgid只能给目录添加,当给目录添加了sgid之后,后面不管谁在这个目录下创建文件。文件的所属组都会继承目录的所属组
sticky(t):
#chmod 1777 目录
#chmod o+t 目录
t权限只能给目录添加,当给目录添加了t权限后,后面所有人在这个目录下不能删除其他人的文件
facl用来扩展ugo权限,可以单独的对某一个用户或者某一组用户设置权限
查看facl
#getfacl 文件(目录)名
设置facl
#setfacl -m u:user1:r 文件名(r也可以改为数字)
#setfacl -R -m u:user1:r 目录(-R必须加到前面,递归修改)
设置facl的继承权限,只能对目录设置,对目录本身不生效
#setfacl -m d:u:wing:r dir1
mask 和权限做与运算,最后的结果是有效权限控制用户的实际权限
#setfacl -m m::rw aaa
取消facl
#setfacl -b aaa 取消aaa的所有facl权限
#setfacl -x u:user11: aaa删除user11对aaa的facl权限
umask 用户掩码
用来控制用户创建文件和目录的默认权限
用户创建目录和文件的默认权限是777 666
#umask
0022 root用户默认
0002 普通用户默认
umask取反,然后与之前做与运算
环境语言:
#echo $LANG 查看当前的环境语言
#LANG=zh_CN.UTF8更改环境语言,只是临时生效
纯手动创建账户过程
1)在passwd文件添加一行账户信息tom
2)在home下面创建一个家目录,同名 #cp -r /etc/skel /home/tom
3) 创建一个tom组,在group文件添加一行tom组信息,在gshadow文件添加一行tom组信息
4)修改权限
#chown tom.tom /home/tom -R
#chmod 700 /home/tom
5) 创建个人邮箱
#touch /var/spool/mail/tom
#chown tom.mail /var/spool/mail/tom
#chmod 660 /var/spool/mail/tom
etc/login.defs 创建账户的配置文件
转载于:https://blog.51cto.com/yuxinzhe/1346480