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组