3、账号和权限管理
1.管理用户和组账号
1.1.用户和组账号概述
用户账号:超级用户、普通用户、程序用户
组账号:基本组(私有组)、附加组(公共组)
UID 和 GID:User IDentity(用户标识号)、Group IDentity(组标识号)
1.2.用户账号文件 /etc/passwd
/bin/bash:正常登录使用的系统
/sbin/nologin:注销语句,表示该账户不能登录操作系统
1.3.用户账号文件 /etc/shadow(影文件)
第一段:用户名
第二段:加密后的密码,前面出现了一个 ! 或两个 ! 表示禁止登录,$ 表示可以登录
第三段:用户上次修改密码的日期(距离 1970.1.1 相隔多少天)
第四段:密码最短使用期限,0表示无限制
第五段:面膜最长使用期限,99999表示无限制
第六段:密码过期前N天,提醒更换密码
第七段:密码过期后宽限天数,超过宽限后,账户不可使用,需要管理员解锁
第八段:账户过期时间距离 1970.1.1 相隔多少天
第九段:保留未使用
1.4.用户相关命令
useradd:添加用户
-u:指定 UID 标记号 -d:指定宿主目录,缺省为 /home/用户名 -e:指定账号失效时间 -g:指定用户的基本组名(或 UID 号)一般不动 -G:指定用户的附加组名(或 GID 号) -M:不为用户建立并初始化宿主目录,人为创建程序用户时使用 -s:指定用户的登录 shell
eg:创建zhangsan并且设定zhangsan的家目录在/test/zhangsan
mkdir /test
useradd -d /test/zhangsan zhangsan
useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike
创建 mike 用户,家目录位于 /ftphome/mike,基本组为 mike,附加组为 ftpuser,不可登录操作系统
passwd:设置账号密码
-d:清空用户密码,使之无需密码即可登录 -l:锁定用户账号(两个 ! 号) -S(大写):查看用户账号状态(是否被锁定) -u:解锁用户账号
更改用户 lisi 的密码:
echo 123.com | passwd --stdin lisi
passwd lisi
用户账号的初始配置文件
文件来源:新建账号时,从 /etc/skel 目录中复制过来(可以在其中添加文件或目录,会在新建用户时一起复制过去)
主要的用户初始配置文件
~/.bash_profile:用户每次登录时执行 ~/.bashrc:每次进入新的 bash 环境时执行 ~/.bash_logout:用户每次登出时执行
usermod:修改账号属性
-l:更改用户账号的登录名称 -L:锁定账号(一个 ! 号) -U:解锁账号 以下选项与 useradd 的含义相同:-u、-d、-e、-g、-G、-s
用户搬家:
usermod -d /test/wangwu wangwu(/home/wangwu)
mv /home/wangwu /test/
userdel:删除用户(-r:表示连用户的宿主目录一起删除)
1.5.组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息(为组创建密码,密码全组共享)
groupadd:添加组账号
groupadd [-g GID] 组账号名(GID 号弄大一点,1500以后)
gpasswd:用户加入组
设置组账号密码(极少用)、添加/删除组成员
-a:向组内添加一个用户 -d:从组内删除一个用户成员 -M:定义组成员列表,以逗号分隔(刷新组成员列表)
groupdel:删除组账号
groupdel 组账号名 删除组后,组成员除权限外,不受影响
1.6.账号的查询命令
id:查询用户身份标识(id 用户名)
groups:查询用户所属组(groups 用户名)
finger:查询用户账户的详细信息(finger 用户名)
users、w、who:查询已登录到主机的用户信息
2.管理目录和文件的属性
2.1.查看文件/目录的权限和归属
chmod:修改文件或目录的读写执行权限
u、g、o、a:属主、属组、其他用户、所有用户 常用选项: -R:递归修改指定目录下所有子项的权限
chown:修改文件或目录的所属用户
chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录
-R:递归修改指定目录下所有子项的权限
2.2.文件底层属性
lsattr:查看文件底层属性
-:代表此控制位没有附加任何底层属性
chattr:修改底层属性
+ - = 用法同 chmod
i:全锁 目录:可修改已有子对象,不可建立删除子对象 文件:不可删除、改名、追加、修改 a:修改锁 目录:可以建立修改子对象,不可删除子对象 文件:可以追加内容,不可修改删除(多用于日志)
2.3.附加权限 SET 位(很危险)
SET 位权限
为可执行的文件设置,权限字符:s 其他用户执行该文件时,将拥有属主或属组权限
SET 位权限类型
suid:对属主用户增加 SET 位权限 sgid:对属组内用户增加 SET 位权限
chmod u+s /sbin/ifconfig
--rwsr-xr-x. 1 root root
vim拥有SET位,所有能够加 ! 强制修改只读文件
2.4.粘滞位
没有设置粘滞位,用户互相干扰:比如跨用户删除文件
设置粘滞位,用户只能管理自己:比如不能删除除用户自身拥有的文件
让多个用户在同一个设置了开放权限的目录中只可以修改属于自己的文件: chmod o+t /share