linux的用户以及用户组
用户及用户组配置文件
用户信息文件:/etc/passwd
用户密码文件:/etc/shadow
用户组信息文件:/etc/group
/etc/passwd文件格式
字段 |
含义 |
用户名 |
用户名,字母和数字组成 |
密码 |
只是标识,代表密码位,并不存放真实密码 |
UID |
用户ID |
GID |
初始组ID |
描述 |
描述用户的信息 |
宿主目录(家) |
用户登录时的缺省目录 |
命令解析器 |
使用哪种shell,默认为bash |
用户类型
Linux用户分为三种:
超级用户(root,UID=0)
普通用户(UID 500-60000)
伪用户(UID 1-499)
伪用户(了解)
1、伪用户因系统应用和程序服务而存在
如:bin、shutdown、reboot等,与Linux系统程序相关。
Apache、ftp、mysql等,与Linux程序服务相关。
2、伪用户通常不需要或无法登陆 onLogin
3、可能没有宿主目录
/etc/shadow文件格式
字段 |
含义 |
用户名 |
用户名 |
密码 |
SHA512加密,!!或*表示无密码,不能登录 |
修改时间 |
相对1970-1-1日到现在天数 |
最小时间间隔 |
几天内不能修改,0或空表示随意 |
最大时间间隔 |
密码有效的最多天数,1表示不可修改 |
警告时间 |
从系统开始警告密码失效的天数,-1无警告 |
失效天数 |
密码失效后的宽限时间,-1永远不会禁用 |
取消日期 |
相对1970-1-1日,指定密码失效日期 |
保留字段 |
未来使用 |
/etc/group文件格式
字段 |
含义 |
组名 |
建议根据功能等信息起有意义的组名 |
组密码 |
普通用户切换默认组时需要 |
GID |
组ID |
组内用户列表 |
将该组当成附属组的用户,用逗号分隔 |
如何手动添加一个用户(了解)
1、建立所需组群
2、将/etc/group和/etc/gshadow同步化
3、建立账号属性
4、将/etc/passwd和/etc/shadow同步化
5、建立账号密码
6、建立家目录
7、修改家目录权限
用户及用户组管理命令
操作 |
用户 |
用户组 |
添加 |
useradd |
groupadd |
修改 |
usermod |
groupmod |
删除 |
userdel |
groupdel |
密码 |
passwd |
gpasswd |
操作 |
含义 |
id |
查看用户信息 |
su |
切换用户 |
用户管理
命令格式:useradd 选项 用户名
g:缺省组(默认为用户名组)
G:所属组(添加到多个用户组,逗号隔开)
c: 描述信息
d:指定家目录
useradd –g aa bb 添加用户bb同时指定初始组aa
useradd –G user1 aa 添加用户aa指定附加组user1
修改密码:passwd [用户名] -l锁定 -u解锁
什么都不加修改当前用户密码
删除用户:userdel -r 用户名
-r:删除用户相关文件(宿主目录和邮件)
修改用户信息
usermod
usermod -g webadmin jack
usermod -G group1,group2 jack
usermod -help
man usermod
-l 改名 -c 改备注 -e 过期时间 -L 锁定用户
-U 解锁 -aG 追加所属组
用户组管理
添加组:groupadd 组名
修改组:groupmod 选项 组名
-n:修改组名
groupmod -n newname oldname
删除组:groupdel
组密码:gpasswd -a 用户名 组名
-a 添加用户到组 -d 删除用户从组
切换用户命令
切换登录用户:su [-] 用户名
-:携带用户的环境变量
不带-切换root,家目录也为之前的用户所在目录
用户授权示例
授权用户jack和mary对目录/software有写权限
groupadd softadm
usermod –aG softadm jack
gpasswd –a marry softadm 效果同上
chgrp softadm /software
chmod g+w /software
查看是否修改成功
ls –ld /software;grep softadm /etc/group
特殊权限
SetUID
ls –l /usr/bin/passwd
chmod 4755 filename
chmod u+s filename
SetGID chmod 2755 filename
粘着位(t) chmod 1777 dirname
ls –ld /tmp
特殊权限位的理解
危险的实验:
将vi命令赋予setUID
修改passwd文件和shadow文件,成功!
特殊权限位的作用
当你在普通用户执行vi时,这一刻root附体
setGID效果同setUID,享用root组权限
粘着位的作用:创造一块各玩各的空间
Sudo授权
su命令的优缺点:
方便,但不适于多人使用
sudo命令:在制定的命令前加sudo 来使用sudo授权
sudo命令优点:
授予普通用户以root身份执行指定命令
命令范围可限定至具体选项及参数
授权:
vi /etc/sudoers
visudo
授权格式
用户名 主机名=命令(绝对路径which查看)
jack localhost=/bin/vi /etc/httpd/conf/httpd.conf
基本
jack,mary localhost=/bin/vi /etc/httpd/conf/httpd.conf
多用户
jack localhost=/bin/mount /dev/cdrom /mnt/cdrom, /bin/umount /mnt/cdrom多命令
jack localhost=NOPASSWD:/bin/vi /etc/httpd/conf/httpd.conf
无需密码
ACL权限
ACL(Access Control List),一个文件/目录访问控制列表,可针对指定的用户/组分配RWX权限,内核2.6之后默认加入。
设置权限:
setfacl -m <rules> <files>
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
例:setfacl -m u:jack:rx /backup
设定ACL命令的参数
-m:设定权限
-x:移除指定权限
setfacl –x u:jack /backup
-b:移除所有权限
-R:递归设置(对于目录)
继承设置:setfacl -m d:u:jack:rwx -R /test
对于新创建的文件和目录页生效
查看ACL权限:getfacl 文件名(长格式后面多个+)
如果对目录设置ACL权限需要一下两条命令:
setfacl -R –m u:用户名:权限 目录
//对已存在的文件递归赋予acl权限
setfacl –R –m d:u:用户名:权限 目录
//对未来的新文件继承acl权限