查看当前用户
要查看当前登录用户的身份,可以使用以下命令:
whoami # 查看当前登录用户的用户名
who am i # 显示打开当前伪终端的用户的详细信息
who 命令的其它常用参数:
-a:打印所有可打印的信息。-d:打印死掉的进程。-m:同am i,显示当前终端关联的用户信息。-q:打印当前登录用户数及用户名。-u:打印当前登录用户的登录信息。-r:打印当前的运行等级。
创建新用户
在 Linux 系统中,创建新用户主要有两个命令:useradd 和 adduser。
adduser newname # 交互式创建用户 newname
useradd 和 adduser 的区别
两者都能创建用户,但工作方式不同:
- useradd:是一个基础命令,仅创建用户账户。创建后通常需要使用
passwd newname命令来设置密码,用户才能登录。 - adduser:是一个更友好的交互式脚本(常见于 Debian/Ubuntu 及其衍生系统)。它会引导你完成创建用户、创建家目录、设置密码等一系列操作。
注意:使用 useradd 创建的用户,在默认情况下账户是被锁定的,需要设置密码后才能使用。
以下是 adduser 命令的常用参数:
用法:adduser [选项] 登录名
adduser -D
adduser -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段(备注信息)
-d, --home-dir HOME_DIR 指定新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 设置账户的过期日期
-f, --inactive INACTIVE 密码过期后账户被禁用的天数
-g, --gid GROUP 指定新账户的主组名称或 ID
-G, --groups GROUPS 指定新账户的附加组列表
-m, --create-home 创建用户的主目录
-s, --shell SHELL 指定新账户的登录 shell
-u, --uid UID 指定新账户的用户 ID
删除用户
删除用户推荐使用 userdel 命令。在 CentOS/RHEL 等系统中,通常只有 userdel;而 Debian/Ubuntu 系统可能同时有 deluser 命令。
userdel [选项] 用户名
常用选项:
-r:删除用户的同时,一并删除其家目录和邮件池。-f:强制删除,即使该用户当前已登录。
例如,要彻底删除用户 newname 及其家目录:
userdel -r newname
在 Debian/Ubuntu 上,等效的命令是:
deluser --remove-home newname
修改用户密码
passwd newname
修改用户账户属性
使用 usermod 命令可以修改用户的属性,如所属组、家目录、登录名等。
# 修改用户的主组
usermod -g siatstudent newname
# 将用户添加到多个附加组(注意:这会覆盖用户原有的附加组)
usermod -G friends,happy,funny newname
注意:使用 usermod -G 时,如果不加 -a 选项,它会用新的组列表替换用户原有的附加组。如果想追加新组而不移除原有组,请使用 -aG 选项。
# 追加用户到新的附加组,保留原有的组关系
usermod -aG happy newname
usermod 的常用选项:
-c:修改用户的备注信息。-d:修改用户的家目录。-g:修改用户的主组。-G:修改用户的附加组列表。-a:与-G一同使用,表示追加组而非替换。-s:修改用户的登录 shell。-L:锁定用户账户。-U:解锁用户账户。
查看用户所属群组
groups newname # 查看用户 newname 所属的所有组
用户组管理
创建组
groupadd newgroup # 创建一个名为 newgroup 的新组
修改组
groupmod -n newname oldname # 将组名从 oldname 改为 newname
删除组
groupdel groupname # 删除指定的组
查看文件与用户组信息
ls -l # 第三列为文件所有者,第四列为文件所属组
groups # 查看当前登录用户所在的组
groups username # 查看指定用户所在的组
cat /etc/group # 查看系统中所有的组信息
文件权限管理
chmod 命令:修改文件访问权限
Linux/Unix 的文件权限分为三级:文件所有者(Owner)、所属组(Group)和其他用户(Others)。
用法:chmod [选项] 模式 文件...
常用选项:
-R:递归处理,修改目录及其下所有文件的权限。-v:显示详细的执行过程。-c:仅在权限发生改变时报告。
权限模式可以用字母或八进制数字表示。
字母表示法
- 身份:
u(所有者),g(所属组),o(其他用户),a(所有用户)。 - 操作:
+(增加权限),-(移除权限),=(设置权限)。 - 权限:
r(读),w(写),x(执行)。
示例:
# 给所有者增加读和执行权限
chmod u+rx file.txt
# 给所属组增加读权限
chmod g+r file.txt
# 移除其他用户的读权限
chmod o-r file.txt
# 给所有用户增加执行权限
chmod +x file.txt
# 设置精确权限:所有者读写执行,所属组只读,其他用户无权限
chmod u=rwx,g=r,o=- file.txt
# 递归设置目录权限
chmod -R 700 /home/newname
八进制数字表示法
权限用三位八进制数字表示,分别对应所有者、所属组和其他用户。每位数字是 r(4)、w(2)、x(1) 权限值的和。
7 (4+2+1):读写执行(rwx)6 (4+2):读写(rw-)5 (4+1):读执行(r-x)4:只读(r--)0:无权限(---)
示例:chmod 755 file.txt 表示所有者有 rwx 权限,所属组和其他用户有 r-x 权限。
理解文件权限输出
执行 ls -l file.txt 可能输出:-rw-r--r--
- 第一个字符
-表示这是一个普通文件(d表示目录,l表示链接)。 - 接下来的三组
rw-、r--、r--分别表示:- 所有者权限:可读(r)、可写(w)、不可执行(-)。拥有写权限通常也意味着可以删除该文件。
- 所属组权限:只读(r)。
- 其他用户权限:只读(r)。
chown 命令:改变文件所有者和所属组
chown 命令用于更改文件或目录的所有者(Owner)和所属组(Group)。
# 改变文件的所有者
chown newowner file.txt
# 同时改变文件的所有者和所属组
chown newowner:newgroup file.txt
# 递归改变目录及其下所有文件的所有者
chown -R root /path/to/directory
常用选项:
-R:递归处理。-v:显示详细信息。-c:仅在发生改变时报告。
注意:通常只有 root 用户或有相应权限的用户才能更改文件的所有者。