Linux用户信息与文件管理

▼魔方 西西 提交于 2020-03-02 00:57:48

用户身份

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,感觉还不错

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!