用户身份
Linux系统中用户分为三种:
-
管理员UID为0:管理员用户(root)
-
系统用户UID为1~999:负责运行服务程序
-
普通用户UID从1000开始:是有管理员创建的用于日常工作的用户
UID不能冲突,管理员创建的普通用户的UID默认是从1000开始的。
为了方便管理,Linux系统还引入了用户组的概念,用GID表示,把多个用户加到同一组中,为组中用户统一规划权限或指定任务。系统每创建一个用户,都会自动创建一个与它同名的基本用户组,而这个组只有该用户一个人;若该用户以后被分到其他用户组,那么这个其他用户组被称为扩展用户组;一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常工作需要。
1.useradd命令
格式:useradd [选项] 用户名
作用:用于创建新的用户
参数 作用 -u 指定用户的UID -d 指定用户家目录 -e 账户的到期时间,格式YYYY-MM-DD -g 指定一个初始的用户基本组(已存在) -G 指定一个或多个扩展用户组 -N 不创建同名基本用户组 -S 指定shell解释器
例:创建一个uid为6868的用户
[root@localhost ~]# useradd -u 6868 zz
[root@localhost ~]# id zz
uid=6868(zz) gid=6868(zz) groups=6868(zz)
2.groupadd命令
格式:groupadd [选项] 群组名
作用:创建用户组
例:创建一个用户组likes
[root@localhost ~]# groupadd likes
3.usermod命令
格式:usermod [选项] 用户名
作用:更改用户的属性
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 俩参数可连用,重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户,禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 更改默认终端 |
-u | 修改用户的UID |
例:查看账户zz的信息
[root@localhost ~]# useradd -u 6868 zz
[root@localhost ~]# id zz
uid=6868(zz) gid=6868(zz) groups=6868(zz)
把zz加入root用户组
[root@localhost ~]# usermod -G root zz
[root@localhost ~]# id zz
uid=6868(zz) gid=6868(zz) groups=6868(zz),0(root)
用-u参数修改zz的UID号码值
[root@localhost ~]# usermod -u 9999 zz
[root@localhost ~]# id zz
uid=9999(zz) gid=6868(zz) groups=6868(zz),0(root)
4.passwd命令
格式:passwd [选项] [用户名]
作用:用于修改用户密码、过期时间、认证信息等
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码 |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-s | 显示用户的密码是否被锁定,以及密码所采用的的加密算法名称 |
5.userdel命令
格式:userdel [选项] 用户名
作用:删除用户
参数 | 作用 |
---|---|
-r | 同时删除用户及其家目录 |
-f | 强制删除用户 |
例:使用userdel命令删除zz用户
[root@localhost ~]# id zz
uid=9999(zz) gid=6868(zz) groups=6868(zz), 0(root)
[root@localhost ~]# userdel -r zz
[root@localhost ~]# id zz
id: zz: no such user
文件权限与归属
一切皆文件,不同文件用不同字符来区分
- -:普通文件
- d:目录文件(directory)
- l:链接文件(link)
- b:块设备文件(block)
- c:字符设备文件(char)
- p:管道文件(pine)
每个文件都有所有者和所属组,规定了文件的所有者、所有组及其他人对文件的可读r写w执行x等权限。
文件的读写执行可以简写为rwx,也可用数字421表示
权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
---|---|---|---|
权限项 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
字符表示 | r w x | r w x | r w x |
数字表示 | 4 2 1 | 4 2 1 | 4 2 1 |
文件的特殊权限
单纯的文件权限rwx不能喝满足需求,便有了SUID、SGID、SBIT的特殊权限位。这是对文件权限设置的特殊功能,可以与一般权限使用,以弥补一般权限不能实现的功能。
1.SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
2.SGID
SGID主要是极限两种功能:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
chmod命令
格式:chmod [参数] 权限 文件或目录名称
作用:用来设置文件或目录的权限
chown命令
格式:chown [参数] 所有者:所属组 文件或目录名称
作用:设置文件或目录的所有者和所属组
3.SBIT
SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。也就是说,当某个目录设置了SBIT粘滞位权限后,该目录中的文件就只能被其所有者执行删除操作。
文件的隐藏属性
文件除了具有一般权限和特殊权限外,还有一种隐藏权限,默认情况下不能直接被用户发觉。
1、chattr命令
格式:chattr [参数] 文件
作用:用于设置文件的隐藏权限
参数 | 作用 |
---|---|
i | 无法对文件进行修改;若目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许追加内容,无法覆盖/删除内容 |
S | 文件内容在变更后立即同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复 |
A | 不再修改这个文件或目录的最后访问时间 |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件的错误 |
d | 使用dump命令备份时忽略本文件或目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 当文件系统支持尾部合并 |
x | 可以直接访问压缩文件中的内容 |
2.lsattr命令
格式:lsattr [参数] 文件
作用:用于显示文件的隐藏属性
文件访问控制你列表
前面的一般权限、特殊权限、隐藏权限有一个共性,这些权限这对某一类用户设置的。要对文件进行单独的控制,就需要文件的访问控制列表ACL了。若对某个目录设置了ACL,则目录中的文件会继承其ACL;若对文件设置了ACL,则文件不再继承其所在目录的ACL。
1.setfacl命令
格式:setfacl [参数] 文件名称
作用:用于管理文件的ACL规则
对目录文件需要使用-R递归参数;对普通文件则使用-m参数;如果想要删除某个文件的ACL使用-b参数
2.getfacl命令
格式:getfacl 文件名称
作用:用于显示文件上设置的ACL信息
su命令与sudo服务
su命令可以切换用户,su命令与用户名之间有一个减号(-),意味着完全切换到新用户,即吧环境变量信息也变更为新用户的相应信息。
root账号切换到普通用户时不需要密码,普通用户切换成root账号要验证密码
sudo命令
格式:sudo [参数] 命令名称
作用:给普通用户提供额外的权限来完成原本root用户才能完成的任务;限制用户执行指定的命令;记录用户执行的每一条命令;配置文件提供集中的用户管理、权限与主机等参数;验证密码的后5分钟内无须再让用户再次验证密码
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行命令 |
-u用户名或UID值 | 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时需要再次验证密码 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
使用sudo命令时要验证密码,若不想验证密码,可添加NOPASSWD参数。
令 |
| -u用户名或UID值 | 以指定的用户身份执行命令 |
| -k | 清空密码的有效时间,下次执行sudo时需要再次验证密码 |
| -b | 在后台执行指定的命令 |
| -p | 更改询问密码的提示语 |
使用sudo命令时要验证密码,若不想验证密码,可添加NOPASSWD参数。
参考《Linux就该这么学》,我在用这个书来学习Linux,感觉还不错
来源:CSDN
作者:HDXM
链接:https://blog.csdn.net/weixin_44872040/article/details/104598719