用户

优质
小牛编辑
132浏览
2023-12-01

在 Linux 系统中,有两种用户:普通用户、root用户

root用户拥有对系统的完全控制权。实际上这没有看上去那样的美妙,你必须对自己的行为负全部的责任。Linux 继承了 Unix 的设计哲学:系统毫无保留的执行你下达的命令,哪怕这个命令是“向我开炮!”

普通用户只可以作系统允许的事情。尽管可以执行大多数命令,但是 root专有的命令却不能成功的执行,因为这些命令往往关联着只有 root 才可以处理的文件。也就是说,普通用户通常只可以处理自己 $HOME 目录下的文件。详见 “执行命令的权限”一节

而作为 root用户,可能会因为误操作给系统带来破坏;作为普通用户,可以作的事情又太少了点。

执行命令的身份

默认情况下,您的命令提示符末位为 $ ,这表示您将以普通用户的身份执行命令。

您可以使用 su (switch user)这个命令来切换其它用户。

例如 su root ,切换到 root用户(如果 su命令后面没有参数,那么这个命令默认切换到 root用户)。

当您执行 su 这个命令,系统会提示您输入密码,请输入管理员的密码。这个时候,您会发现命令提示符末位变成了 # ,您将以 root用户 的身份执行命令。

许多 Linux 系统默认会随机设定系统的 root密码,这样更安全一些,这个时候您可以执行 sudo 命令,输入当前用户密码后,暂时以 root用户 的身份执行命令。(前提是 sudoer 列表中要包含您的 ID)

[提示]提示
使用 visudo (需要 root权限)可以将普通用户加入到 sudoer 列表中。

但即便是用 sudo 来执行,也不能保证系统不会在您的误操作下一命呜乎,更安全的办法是直接赋与用户某种操作的权限。

gpasswd -a user audio

这个命令将 user 加入到 audio 群组,您拥有了使用音频设备的权限。

事实上,Linux 中一切皆文件,包括设备文件。

ls -l /dev/sound 
crw-rw---- 1 root audio 14,  4 10-04 09:41 audio
crw-rw---- 1 root audio 14,  3 10-04 09:41 dsp
crw-rw---- 1 root audio 14,  2 10-04 09:41 midi
crw-rw---- 1 root audio 14,  0 10-04 09:41 mixer
…………    

可以看到,和音频有关的设备文件,除了 root用户 可以使用,audio群组 中的用户也可以使用。

群组

群组分为两种,主组和辅组。在 /etc/passwd 文件中,与用户相关联的是主组,每个用户只可以加入一个主组;/etc/group 文件中则记录了每一个辅组所包含的用户,同一个用户可以被多个辅组所包含。

这样看起来有点乱,但却可以提供更大的灵活性。例如:

crw-rw---- 1 root audio    /dev/sound/audio
brw-rw---- 1 root optical  /dev/cdrom  

先假设一名用户只可以属于一个群组:你是系统管理员,你管理的用户要求听点音乐,你把他加入了 audio组;于是该用户把 CD 放进了光驱,结果一点反映也没有,于是为了让他使用 cdrom,不得不让他拥有 root权限,你将不能防范他可能作出的破坏。

而一名用户可以属于多个群组,能够很好的解决这个问题:你可以让可以用户既属于 audio群组,又属于 optical群组,这样他就可以用 cdrom 来听音乐,却没有 root权限。