Linux--用户-权限-管理

文章目录

  • 相关文件
    • 配置文件详解
  • 管理命令
    • useradd
    • passwd
    • usermod
    • userdel
    • groupadd
    • groupdel
    • gpasswd
    • newgrp
  • 权限 管理
    • ACL
      • getfacl
      • setfacl
    • sudo
      • visudo
    • chmod
      • setuid
      • setgid
        • 对文件
        • 对目录
      • setbit
    • chattr
    • lsattr

相关文件

  • /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

对目录

  • 普通 用户必须对此目录拥有 rx 权限 才能进入此目录
  • 若普通用户对此目录拥有 w 权限 时,新建的文件所属组 为此目录的属组
chmod g+s /test/

setbit

  • 粘着位只对目录 起作用
  • 普通用户对该目录拥有wx 权限
数字 特殊权限
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 若目标是目录,仅列出目录本身的属性,而不是子文件的。

你可能感兴趣的:(Linux)