Linux用户身份与文件权限


用户身份与文件权限

  • 用户

    1.管理员 root UID: 0

  1. 系统用户 5/6 UID: 1-499
                 红帽7        UID 1-999
                 /sbin/nologin  
    
    3.普通用户 5/6 500-65535
                 7         1000-
    
 id xps   # 查看用户信息
 useradd
useradd -u 555 xps   # 新建用户并指定uid
useradd -u ssbin/nologin xps   # 指定终端
adduser

groupadd hhh   # 新建用户组

usermod -G hhh xps   # 基本组/扩展组
usermod -u 666 xps   # 修改uid

groupdel hhh    # 删除用户组
passwd xps   # 重置密码


userdel xps   # 删除用户(不删除home等)
userdel -r xps   # 删除用户(信息全删除)
deluser

#修改name的话可以直接去 /etc/passwd修改

  • 文件权限
    `
    文件类型
    ➢ -:普通文件。
    ➢ d:目录文件。
    ➢ l:链接文件。
    ➢ b:块设备文件。
    ➢ c:字符设备文件。
    ➢ p:管道文件。

r读4
w写2
x执行1

===============
chmod # 权限 格式为“chown [参数] 所有者:所属组 文件或目录名称” chown root:bin test
chown # 所有者,属性

-Rf # 强制的意思

chmod -Rf 777 test/
chmod -Rf g+s test/ # 并为该目录设置了 SGID 特殊权限位

chmod -R o+t linux/ # 设置sbit权限 保护位



- **文件的特殊权限**  

1.SUID # 让程序执行者,临时获取程序所有者的身份(仅对拥有执行权限的二进制程序有效)
u+s 4

2.SGID # 让程序执行者,临时获取程序所有组的身份
让目录内的新建文件,集成目录所有组的名称
g+s 2

3.SBIT #让目录内的文件,只能自己删除自己
RHEL 7 系统中的/tmp 作为一个共享文件的目录,默认已经设置了 SBIT 特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件;
当目录被设置 SBIT 特殊权限位后,文件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T,原本有 x 执行权限则会写成 t,原本没有 x 执行权限则会被写成 T
o+t 1

suid:
x 改变成 s 就意味着该文件被赋予了 SUID 权限。如果原本的权限是 rw-呢?如果原先权
限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S
s 证明原先有x
S 证明原先没有x

sgid:
s 证明原先有x
S 证明原先没有x

sbit:
对其他目录来设置 SBIT 特殊权限位,用 chmod 命令就可以了。对应的参数 o+t 代表设置 SBIT 粘滞位权限:
t 证明原先有
T 证明原先没有x

例如:
转换7654 # 7是特殊权限位, 654是一一般权限位
420 401 400
rw- r-x r–
7: = 4+2+1 三个都涉及了,所以要都加上 # S->之前没有x权限,s->之前有x权限,T->之前没有…

  rwSrwsr-T

======
rwsr–rwT

rwxr–rw- 746
s=4,T=4
5746

======
r-Srws–T

5470





- **文件的隐藏属性**  

1.chattr 设置文件的隐藏权限,格式为“chattr [参数] 文件”
chattr +a /var/log/message

  1. lsattr 显示文件的隐藏权限,格式为“lsattr [参数] 文件”
         lsattr -d Desktop/   $ 查看目录的...
    
    `
    表 5-6 chattr 命令中用于隐藏权限的参数及其作用
参数 含义
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用 dump 命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
X 可以直接访问压缩文件中的内容
  • 文件访问控制列表 ACL
    `
    对某个指定的用户进行单独的权限控制
    如果针对某个目录设置了 ACL,则目录中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的 ACL

1.setfacl 命令
(针对目录文件需要使用-R 递归参数;
针对普通文件则使用-m 参数;
如果想要删除某个文件的 ACL,则可以使用-b 参数)
setfacl -Rm u:xps:rwx /root # -m 修改
setfacl -Rm g:xpsg:r-x /tmp
看到文件的权限最后一个点(.)变成了加号(+) ,这就意味着该文件已经设置了 ACL 了。

2.getfacl



- su 与sudo  

su - xps
su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)

使用 sudo 命令把特定命令的执行权限赋予给指定用户(避免泄露 root 管理员密码)

sudo 服务中的可用参数以及作用
-h 列出帮助信息
-l 列出当前用户可执行的命
-u 用户名或 UID 值 以指定的用户身份执行命
-k 清空密码的有效时间,下
-b 在后台执行指定的命令
-p 更改询问密码的提示语

sudo 命令具有如下功能:
➢ 限制用户执行指定的命令:
➢ 记录用户执行的每一条命令;
➢ 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
➢ 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。

使用 sudo 命令提供的 visudo 命令
来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改 sudoers 配置文件,还
可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
(只有root才能使用visudo编辑所服务的配置文件)

在 sudo 命令的配置文件中,按照下
面的格式将第 99 行(大约)填写上指定的信息:
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
xps ALL=(ALL) ALL

如果需要让某个用户只能使用 root 管理员的身份执行指定的命令,切记一定要给
出该命令的绝对路径,否则系统会识别不出来。
先使用 whereis 命令找出命令所对应
的保存路径,然后把配置文件第 99 行的用户权限参数修改成对应的路径即可
xps ALL=(ALL) /usr/bin/cat

加 NOPASSWD 参数,使得用户执行 sudo 命令时不再需要密码验证:
xps ALL=NOPASSWD: /usr/sbin/poweroff

`


文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
ol2实现地图聚合功能 ol2实现地图聚合功能
折腾了好久,终于把地图聚合给做出来了,这还得感谢杨姐姐最终的指点(不对,是帮助了很多)。下面我就直接贴代码了。 代码的主目录是这样的:( cluster.html <!DOCTYPE html> <html> <hea
2019-05-09
下一篇 
Linux存储结构与磁盘划分 Linux存储结构与磁盘划分
存储结构与磁盘划分/boot 开机所需文件—内核、开机菜单以及所需配置文件等 /dev 以文件形式存放任何设备与接口 # /etc 配置文件 # /home 用户家目录 # /bin 存放单用户模式下还可以操作的命令 /lib
2019-05-05
  目录