Linux命令权限操作
Linux下的用户权限管理
在Linux系统中,用户和组用于管理文件和目录的访问权限。每个用户都有一个唯一的用户ID(UID),而每个组都有一个唯一的组ID(GID)。下面是一些有关Linux下用户和组的常见操作和概念:
-
用户管理:
- 创建用户:可以使用
useradd
命令创建新用户,例如useradd username
。 - 删除用户:使用
userdel
命令删除用户,例如userdel username
。 - 修改用户信息:使用
usermod
命令修改用户的属性,例如usermod -c "New User" username
。 - 切换用户:使用
su
命令切换到其他用户,例如su - username
。
- 创建用户:可以使用
-
组管理:
- 创建组:可以使用
groupadd
命令创建新组,例如groupadd groupname
。 - 删除组:使用
groupdel
命令删除组,例如groupdel groupname
。 - 修改组信息:使用
groupmod
命令修改组的属性,例如groupmod -n newgroupname groupname
。
- 创建组:可以使用
-
用户和组关联:
- 将用户添加到组:使用
usermod
命令将用户添加到一个或多个组,例如usermod -aG groupname username
。 - 查看用户所属的组:使用
groups
命令查看用户所属的组,例如groups username
。
- 将用户添加到组:使用
-
文件和目录权限:
- 每个文件和目录都有一个所有者用户和一个所有者组,它们决定了谁可以访问、修改或执行文件。
- 使用
chown
命令可以更改文件或目录的所有者,例如chown username filename
。 - 使用
chgrp
命令可以更改文件或目录的所属组,例如chgrp groupname filename
。 - 使用
chmod
命令可以更改文件或目录的权限,例如chmod 755 filename
。
USERADD
useradd
命令用于在Linux系统中创建新用户。以下是 useradd
命令的一些常用参数:
-c, --comment COMMENT
:为用户添加注释,通常是用户的描述信息。-d, --home HOME_DIR
:指定用户的主目录路径。-e, --expiredate EXPIRE_DATE
:设置用户的过期日期,格式为 YYYY-MM-DD。-f, --inactive INACTIVE
:设置用户账号的非活动时间(以天为单位),超过该时间将被锁定。-g, --gid GROUP
:指定用户所属的初始组。-G, --groups GROUPS
:指定用户所属的其他附加组。-m, --create-home
:创建用户的主目录。-M, --no-create-home
:不创建用户的主目录。-n, --no-user-group
:不创建与用户名同名的初始组。-r, --system
:创建一个系统用户。-s, --shell SHELL
:指定用户的登录Shell。/sbin/nologin-u, --uid UID
:为用户指定一个唯一的用户ID。-U, --user-group
:创建与用户名同名的初始组。
USERMOD
usermod
是一个用于修改用户账户属性的命令,它可以用于更改用户的各种设置。以下是一些常用的 usermod
参数:
-c, --comment COMMENT
:设置用户账户的注释字段,通常用于提供有关用户的描述信息。-d, --home HOME_DIR
:更改用户的主目录。-e, --expiredate EXPIRE_DATE
:设置用户账户的过期日期。-g, --gid GROUP
:更改用户的主要组。-G, --groups GROUPS
:设置用户的附加组。可以指定一个逗号分隔的组列表。-l, --login NEW_LOGIN
:更改用户的登录名。-p, --password PASSWORD
:设置用户的密码。密码应该是经过加密的。-s, --shell SHELL
:更改用户的登录 shell。-u, --uid UID
:更改用户的用户 ID。-L, --lock
:锁定用户账户,禁止用户登录。-U, --unlock
:解锁用户账户,允许用户登录。
PASSWD
passwd
命令用于更改用户密码。以下是一些常用的 passwd
命令参数:
-l, --lock
:锁定用户账户,禁止用户登录。-u, --unlock
:解锁用户账户,允许用户登录。-d, --delete
:删除用户密码,允许无密码登录。-e, --expire
:强制用户在下次登录时更改密码。-S, --status
:显示用户密码的状态信息。-a, --all
:对所有用户执行操作。-r, --root
:以 root 身份执行操作。-h, --help
:显示帮助信息。
这些参数可以与 passwd
命令一起使用,以执行不同的操作。例如,要锁定用户账户,可以使用 passwd -l 用户名
命令。要解锁用户账户,可以使用 passwd -u 用户名
命令。
GROUP
group
命令用于管理用户组。以下是一些常用的 group
命令参数:
-g, --gid GID
:设置用户组的组 ID。-n, --name NAME
:设置用户组的名称。-r, --system
:创建一个系统用户组。-a, --add USER
:将用户添加到用户组。-d, --delete USER
:从用户组中删除用户。-R, --root CHROOT_DIR
:将操作限制在指定的 chroot 目录中。-h, --help
:显示帮助信息。
这些参数可以与 group
命令一起使用,以执行不同的操作。例如,要创建一个新的用户组,可以使用 groupadd 组名
命令。要将用户添加到用户组,可以使用 groupadd -a 用户名 组名
命令。
GROUPADD
groupadd
命令用于创建新的用户组。以下是一些常用的 groupadd
命令参数:
-g, --gid GID
:设置用户组的组 ID。-r, --system
:创建一个系统用户组。-f, --force
:即使用户组已经存在,也强制创建新的用户组。-K, --key KEY=VALUE
:设置用户组的键值对属性。-R, --root CHROOT_DIR
:将操作限制在指定的 chroot 目录中。-h, --help
:显示帮助信息。
这些参数可以与 groupadd
命令一起使用,以执行不同的操作。例如,要创建一个新的用户组,可以使用 groupadd 组名
命令。要创建一个系统用户组,可以使用 groupadd -r 组名
命令。
GROUPMOD
groupmod
命令用于修改用户组的属性。以下是一些常用的 groupmod
命令参数:
-g, --gid GID
:修改用户组的组 ID。-n, --new-name NEW_GROUP
:修改用户组的名称。-o, --non-unique
:允许使用非唯一的组 ID。-R, --root CHROOT_DIR
:将操作限制在指定的 chroot 目录中。-h, --help
:显示帮助信息。
这些参数可以与 groupmod
命令一起使用,以执行不同的操作。例如,要修改用户组的名称,可以使用 groupmod -n 新组名 旧组名
命令。要修改用户组的组 ID,可以使用 groupmod -g 新组ID 组名
命令。
CHMOD
chmod
命令用于更改文件或目录的权限。它可以使用不同的参数来设置不同的权限。
下面是 chmod
命令的常见参数:
u
:表示文件所有者(user)的权限。g
:表示文件所属组(group)的权限。o
:表示其他用户(others)的权限。a
:表示所有用户的权限,等同于ugo
的组合。+
:添加指定的权限。-
:移除指定的权限。=
:设置指定的权限,覆盖之前的权限设置。
权限参数:
r
:读取权限。w
:写入权限。x
:执行权限。
使用 chmod
命令时,可以组合这些参数来设置不同的权限。以下是一些示例:
-
将文件
script.sh
的所有者设置为可读写执行,所属组和其他用户只有读取权限:chmod u=rwx,g=r,o=r script.sh
-
将目录
mydir
及其所有子目录和文件的所有者和所属组设置为可读写执行,其他用户只有读取和执行权限:chmod -R u=rwx,g=rwx,o=rx mydir
-
将文件
file.txt
的所有用户的写入权限移除:chmod a-w file.txt
-
将文件
program
的所有用户的执行权限设置为与所有者相同:chmod a=x,g=x,o=x program
CHOWN
用于修改用户和组的所有者
用户
chown root aaa //修改为root所有者
组
chown :root aaa // 用于修改为root组