Linux用户身份与文件权限相关命令

useradd 命令

useradd 命令用于创建新的用户,格式为“useradd [选项] 用户名”

  • useradd 命令中的用户参数以及作用
参数作用
-d指定用户的家目录(默认为/home/username)
-e账户的到期时间,格式为 YYYY-MM-DD.
-u指定该用户的默认 UID
-g指定一个初始的用户基本组(必须已存在)
-G指定一个或多个扩展用户组
-N不创建与用户同名的基本用户组
-s指定该用户的默认 Shell 解释器

groupadd 命令

groupadd 命令用于创建用户组,格式为“groupadd [选项] 群组名”

groupadd itoak

usermod 命令

usermod 命令用于修改用户的属性,格式为“usermod [选项] 用户名”

  • usermod 命令中的参数及作用
参数作用
c填写用户账户的备注信息
-d -m参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e账户的到期时间,格式为 YYYY-MM-DD
-g变更所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录系统
-U解锁用户,允许其登录系统
-s变更默认终端
-u修改用户的 UID

passwd 命令

passwd 命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”

  • passwd 命令中的参数以及作用
参数作用
-l锁定用户,禁止其登录
-u解除锁定,允许用户登录
--stdin允许通过标准输入修改用户密码,如 echo “NewPassWord” | passwd --stdin Username
-d使该用户可用空密码登录系统
-e强制用户在下次登录时修改密码
-S显示用户的密码是否被锁定,以及密码所采用的加密算法名称

userdel 命令

userdel 命令用于删除用户,格式为“userdel [选项] 用户名”

  • userdel 命令的参数以及作用
参数作用
-f强制删除用户
-r同时删除用户及用户家目录

文件特殊权限:SUID

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)

例如passwd命令:
[itoak@localhost ~]$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd

文件特殊权限:SGID

SGID 主要实现如下两种功能:
➢ 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
➢ 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

文件特殊权限:SBIT

当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

设置方式:
chmod -R o+t linux/
结果:
drwxr-xr-t. 2 root root 6 Feb 11 19:34 linux/
说明:
此时除了root用户和目录创建者,其他人无法删除该目录

chattr 命令

chattr 命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。

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

lsattr 命令

lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”

setfacl 命令

setfacl 命令用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R 递归参数;针对普通文件则使用-m 参数;如果想要删除某个文件的 ACL,则可以使用-b 参数。下面来设置用户在/root 目录上的权限:

[root@localhost ~]# setfacl -Rm u:linuxprobe:rwx /root
[root@localhost ~]# su - itoak
Last login: Sat Mar 21 15:45:03 CST 2017 on pts/1
[itoak@localhost ~]$ cd /root
[itoak@localhost root]$ ls
anaconda-ks.cfg Downloads Pictures Public
[itoak@localhost root]$ cat anaconda-ks.cfg
[itoak@localhost root]$ exit

是不是觉得效果很酷呢?但是现在有这样一个小问题 — 怎么去查看文件上有那些ACL呢?常用的 ls 命令是看不到 ACL 表信息的,但是却可以看到文件的权限最后一个点(.)变成了加号(+),这就意味着该文件已经设置了 ACL 了。现在大家是不是感觉学得越多,越不敢说自己精通 Linux 系统了吧?就这么一个不起眼的点(.),竟然还表示这么一种重要的权限。

    [root@localhost ~]# ls -ld /root
    dr-xrwx---+ 14 root root 4096 May 4 2017 /root

getfacl 命令

getfacl 命令用于显示文件上设置的 ACL 信息,格式为“getfacl 文件名称”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值