文章目录
相关文件
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
- /var/mail/ ==>/var/spool/mail
- /etc/skel
- /home/
- /etc/default/useradd
- /etc/login.defs
配置文件详解
- /etc/passwd 用户信息文件
root:x:0:0:root:/root:/bin/bash
列 | 解 |
---|---|
第一列 (root) | 用户名 |
第二列 | 密码标识位 |
第三列 | 用户ID |
第四列 | 组ID |
第五列 | 用户说明 |
第六列 | 用户家目录 |
第七列 | 登陆shell |
ps:用户ID
0 超级用户UID ,如果用户UID为 0 ,代表这个帐号是管理员帐号 即直接识别为 root
1-999 系统用户(伪用户)UID 这些帐号是系统保留给系统用户的UID 1-99是系统 保留帐号(由系统自动创建
1000+ 则是普通用户UID
- /etc/shadow 影子文件
mac:$6$T55gxrn/$OJnmXKc3Csr5Qs6uiZJrI7FJIEKNBBzTUK6H.XKhIc8B/PlfQr2UhelKk5EeU2A7pSJioc63u.MVJBWJrst0V1:18391:0:99999:7:::
列 | 解 |
---|---|
第一列 | 用户名 |
第二列 | 用sha512加密过的密文 |
第三列 | 最近一次密码更改的时间戳 |
第四列 | 两次密码的修改时间间隔 |
第五列 | 密码有效期 |
第六列 | 密码修改到期前警告天数 |
第七列 | 密码过期后的宽限天数 |
第八列 | 密码失效时间 戳 |
第九列 | 保留 |
PS:时间戳>以1970年1月1日作为标准时间,过一天加一天。
echo $(($(date --date="2020/05/01" +%s)/86400+1))
- /etc/group 组信息文件
jxls: x:1004:user1,user2
列 | 解 |
---|---|
第一列 | 组名 |
第二列 | 组密码标识位 |
第三列 | GID |
第四列 | 此组中的其它用户 |
PS :初始组>每个用户只有一个,且一般和用户名相同的组
附加组>每个用户可以加入多个附加组
>可以直接修改这个配置文件来让用户加入哪个组。
-
/etc/skel/ 用户模板目录
-
/etc/login.defs
行 | 作用 |
---|---|
MAIL_DIR /var/spool/mail | 指定新建用户的默认邮箱位置 |
PASS_MAX_DAYS 9999 | 指定密码的有效期 |
PASS_MIN_DAYS 0 | 指定两次密码的修改间隔时间(/etc/shadow文件中的第四个字段) |
PASS_MIN_LEN 5 | 密码的最小长度 |
PASS_WARN_AGE 7 | 密码修改到期前的警告天数 (/etc/shadow 中第六字段 ) |
UID_MIN 1000 | 创建用户时最小UID |
UID_MAX 60000 | 创建用户时最大UID |
SYS_GID_MIN 1000 | GID 的最小值 |
SYS_GID_MAX 60000 | GID的最大值 |
CREATE_HOME yes | 建立用户时不否自动建立用户的家目录 |
UMASK 077 | 用户家目录的默认权限 |
ENCRYPT_METHOD SHA512 | Linux 用户的密码使用SHA512加密 |
管理命令
useradd
useradd 选项 命令
- -u 指定UID
- -g 指定初始组
- -G 指定附加组
- -c 添加说明
实例:
useradd -G test -c "这是一个测试用户" user1
PS : useradd 的默认值–> /etc/default/useradd
1 # useradd defaults file
2 GROUP=100
3 HOME=/home
4 INACTIVE=-1
5 EXPIRE=
6 SHELL=/bin/bash
7 SKEL=/etc/skel
8 CREATE_MAIL_SPOOL=yes
INACTIVE=-1 --> 对应 **/etc/shadow**文件中的第七个字段 -1代表永不失效
EXPIRE= -->密码失效时间 对应**/etc/shadow** 中的第八个字段 默认是空 永久有效
passwd
passwd 选项 用户名
- -l 暂时锁定用户
- -u 解锁用户
- –stdin 将通过管道符输出的数据 作为用户的密码(主要用于批量)
echo "123.com" | passwd --stdin user1
usermod
usermod 选项 用户名
- -u UID 修改用户UID
- -d 家目录 修改用户家目录
- -c “用户说明” 修改用户的说明信息
- -g 组名 修改用户的初始组
- -G 组名 修改用户的附加组
- -e 日期 修改用户的失效时期 格式:“YYYY-MM-DD”
- -L 锁定用户
- -U 解锁用户
userdel
userdel [-r] 用户名
- -r 在删除用户的同时删除用户的家目录
su 选项 用户名
- - 代表连带用户的环境变量一起切换
- -c 命令 仅执行一次命令 而不切换用户身份
groupadd
groupadd 选项 组名
- -g GID 指定组ID
groupadd testgroup
groupdel
groupdel 组名
groupdel testgroup
gpasswd
gpasswd 选项 组名
- -a 用户名 将用户加入组
- -d 用户名 将用户从组中删除
gpasswd -a user1 testgroup
newgrp
newgrp 组名
当前用户切换有效用户组。有效用户组即创建文件时的 所属组
权限 管理
ACL
-
查看指定分区是否开户ACL权限
dumpe2fs -h /dev/sdb1
- -h 仅显示超级块中的信息。
-
手工开启ACL权限
mount -o remount,acl /
vim /etc/fstab
- 修改defaults ===> defaults,acl
- mount -o remount / 或重启
getfacl
- getfacl 文件名 查询 文件的ACL权限
setfacl
- setfacl 选项 文件名
- -m 设定ACL权限
- -b 删除ACL权限
- -x:用户 删除单个用户的ACL权限
命令 | 作用 |
---|---|
setfacl -m u:user1:rwx /test | 给test目录赋予user1用户 rwx 的ACL权限 |
setfacl -m u:user1:rx -R /soft/ | -R 是递归赋予 (只赋予当前已存在的文件或目录) |
setfacl -m d:u:user1:rwx -R /soft | 给 /soft 目录赋予 默认权限 (只对以后产生的文件生效) |
setfacl -m m:rwx /soft | 最大有效权限 |
setfacl -x u:user1 /soft | 删除用户user1 在 /soft 下的ACL权限 |
setfacl -b /soft | 删除 /soft 下的所有ACL权限 |
sudo
- 给普通用户赋予部分管理员权限
- /sbin/ 此目录下只有超级用户才能使用
- /usr/sbin
visudo
root ALL=(ALL) ALL
用户名 被管理主机IP=(可使用的身份) 授权命令(绝对路径)
%group ALL=(ALL) ALL
%组名 被管理主机IP =(可使用的身份) 授权命令(绝对路径)
user1 ALL= /sbin/shutdown -r now
sudo -l 查看可用的授权
chmod
setuid
给用户设置S权限
- 只有可以执行的二进制程序才能设定SUID权限
- 命令执行者 要对其有 x 权限
chmod u+s /bin/vim
setgid
给组设置S权限
对文件
- 只有可执行的二进制程序能设置SGID权限
- 命令执行者对程序要用 x 权限
chmod g+s /bin/vim
对目录
- 普通 用户必须对此目录拥有 r 和 x 权限 才能进入此目录
- 若普通用户对此目录拥有 w 权限 时,新建的文件所属组 为此目录的属组
chmod g+s /test/
setbit
- 粘着位只对目录 起作用
- 普通用户对该目录拥有w 和 x 权限
数字 | 特殊权限 |
---|---|
4 | 代表SUID |
2 | 代表SGID |
1 | 代表SBIT |
chmod 4755 /test
# 赋予SUID权限
chmod 2755 /test
# 赋予SGID权限
chmod 1755 /test/
# 赋予SBIT权限
chattr
chattr [+-=] [a i e ] 文件或目录名
+ | 增加权限 |
---|---|
- | 删除权限 |
= | 等于权限 |
i | 如果对文件设置 i 属性,那么不允许对文件进行删除,改名,也不能添加和修改数据 ;如果对目录设置 i 属性,那么只能修改目录下文件的数据 ,但不能 建立和删除文件 |
a | 对文件 那么只能在文件中增加数据 ,但不能删除和修改数据 ; 对目录 那只能在目录中创建 和 修改文件 但不能删除文件 |
-R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
chattr +d file1 | 在进行文件系统备份时dump程序将忽略这个文件 |
chattr +u file1 | 若文件被删除,系统会允许你在以后恢复这个被 删除的文件(undeletion) |
chattr +A file1 | 不再修改这个文件或目录的最后访问时间(atime) |
chattr +i /test
lsattr
lsattr 选项 文件名
- -a 显示所有文件和目录
- -d 若目标是目录,仅列出目录本身的属性,而不是子文件的。