目录
1. 用户管理
用户分类
用户相关文件
常用命令
2. 组管理
组相关文件
常用命令
3. 权限管理
文件权限
权限表示
修改权限
修改所有者和所属组
特殊权限
4. 示例
命令的详细解释
权限解释
示例:文件权限 -rw-r--r-- 的含义
在 Linux 中,用户和权限管理是系统安全和资源控制的核心。以下是对 Linux 用户和权限的详细解释:
1. 用户管理
用户分类
- 普通用户:通常用于个人和非特权操作。
- 超级用户(root):拥有系统的完全控制权,可以执行任何操作。
- 系统用户:通常用于系统服务和守护进程,通常没有登录权限。
用户相关文件
/etc/passwd
:存储用户的基本信息,包括用户名、UID、GID、主目录、Shell 等。/etc/shadow
:存储用户的加密密码信息。/etc/group
:存储组的信息。
常用命令
- 添加用户:
sudo useradd username sudo passwd username # 设置密码
- 删除用户:
sudo userdel username
- 修改用户:
sudo usermod -c "New Comment" username sudo usermod -d /new/home/directory username sudo usermod -s /bin/zsh username sudo usermod -G newgroup username # 添加到新组
- 查看用户信息:
id username getent passwd username
2. 组管理
组相关文件
/etc/group
:存储组的信息。/etc/gshadow
:存储组的密码信息。
常用命令
- 添加组:
sudo groupadd groupname
- 删除组:
sudo groupdel groupname
- 修改组:
sudo groupmod -n newgroupname oldgroupname # 改组名
- 添加用户到组:
sudo usermod -aG groupname username
- 查看组信息:
getent group groupname
3. 权限管理
文件权限
- 读(Read,r):能够查看文件内容或列出目录内容。
- 写(Write,w):能够修改文件内容或在目录中添加/删除文件。
- 执行(Execute,x):能够执行文件或访问目录。
权限表示
-
符号表示法:
-rwxr-xr--
,每个位置代表不同的权限。- 第一个字符:文件类型
-
(文件)或d
(目录)。 - 接下来的三个字符:文件拥有者的权限。
- 中间的三个字符:文件所属组的权限。
- 最后三个字符:其他用户的权限。
- 第一个字符:文件类型
-
八进制表示法:
0755
,每一位表示拥有者、组和其他用户的权限。7
:rwx
(读、写、执行)。5
:r-x
(读、执行)。4
:r--
(只读)。
修改权限
chmod
命令:修改文件或目录的权限。chmod 755 filename chmod u+x filename # 给拥有者增加执行权限 chmod g-w filename # 给组去除写权限 chmod o=r filename # 设置其他用户只读权限
修改所有者和所属组
chown
命令:修改文件或目录的所有者和所属组。sudo chown newowner filename sudo chown newowner:newgroup filename sudo chown :newgroup filename # 只修改所属组
chgrp
命令:只修改文件或目录的所属组。sudo chgrp newgroup filename
特殊权限
- Setuid:使文件以拥有者的权限执行(常用于二进制程序)。
chmod u+s filename
- Setgid:使文件以组的权限执行,或使目录中创建的文件继承目录组。
chmod g+s filename chmod g+s directory
- Sticky Bit:防止非拥有者删除目录中的文件。
chmod +t directory
4. 示例
请看示例命令行:
# 添加用户
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser# 添加组
sudo groupadd newgroup# 将用户添加到组
sudo usermod -aG newgroup newuser# 创建文件并设置权限
touch /tmp/testfile
sudo chmod 644 /tmp/testfile # 设置文件权限为拥有者可读写,其他人只读
sudo chown newuser:newgroup /tmp/testfile # 修改文件拥有者和组
命令的详细解释
-
添加用户:
sudo useradd -m -s /bin/bash newuser
效果:创建一个名为
newuser
的用户,并在/home/newuser
下创建他的主目录,默认 shell 为/bin/bash
。sudo passwd newuser
效果:为
newuser
设置密码,让该用户能够登录系统。sudo
:以超级用户身份执行命令。useradd
:用于添加新用户。-m
:创建用户的主目录(通常位于/home/<username>
)。-s
:指定新用户的默认 shell。/bin/bash
:为新用户指定 Bash 作为默认 shell。newuser
:用户名。passwd
:用于设置或更改用户密码。newuser
:用户名。
-
添加组:
sudo groupadd newgroup
效果:创建一个名为
newgroup
的新组。sudo
:以超级用户身份执行命令。groupadd
:用于添加新组。newgroup
:组名。
-
将用户添加到组:
sudo usermod -aG newgroup newuser
效果:将用户
newuser
添加到newgroup
组,使其成为该组的成员。sudo
:以超级用户身份执行命令。usermod
:用于修改用户信息。-a
:追加组信息而不是替换。-G
:指定要添加的组。newgroup
:组名。newuser
:用户名。
-
创建文件并设置权限:
touch /tmp/testfile
效果:在
/tmp
目录下创建一个名为testfile
的空文件。sudo chmod 644 /tmp/testfile # 设置文件权限为拥有者可读写,其他人只读
效果:设置文件
/tmp/testfile
的权限为拥有者可读写,其他人只读。sudo chown newuser:newgroup /tmp/testfile # 修改文件拥有者和组
效果:将文件
/tmp/testfile
的拥有者设置为newuser
,所属组设置为newgroup
。touch
:用于创建空文件或更新文件的修改时间。/tmp/testfile
:文件路径。sudo
:以超级用户身份执行命令。chmod
:用于修改文件或目录的权限。644
:八进制权限表示法。6
:拥有者(newuser
)具有读和写权限(rw-
)。4
:同组用户具有读权限(r--
)。4
:其他用户具有读权限(r--
)。
/tmp/testfile
:文件路径。sudo
:以超级用户身份执行命令。chown
:用于修改文件或目录的拥有者和组。newuser:newgroup
:新拥有者和组。/tmp/testfile
:文件路径。
权限解释
- 文件类型:第一个字符表示文件类型,
-
表示文件,d
表示目录,l
表示链接等。 - 文件权限:后面九个字符表示文件权限。
- 第 1-3 位(
rwx
):文件拥有者的权限。 - 第 4-6 位(
r-x
):文件所属组的权限。 - 第 7-9 位(
r--
):其他用户的权限。
- 第 1-3 位(
示例:文件权限 -rw-r--r--
的含义
-
:普通文件。rw-
:文件拥有者具有读、写权限。r--
:文件所属组具有读权限。r--
:其他用户具有读权限。