新建文件:
su <user>
可以切换到用户 user,执行时需要输入目标用户的密码,sudo <cmd>
可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - <user>
命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
现在我们新建一个叫 lilei 的用户:
$ sudo adduser lilei
实验楼的环境目前设置为 shiyanlou 用户执行 sudo 不需要输入密码,通常此处需要按照提示输入 shiyanlou 密码(Linux 下密码输入是不显示任何内容的),shiyanlou 用户密码可以通过点击右侧边栏的SSH直连
查看。然后是给 lilei 用户设置密码,后面的选项的一些内容你可以选择直接回车使用默认值:
这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录:
$ ls /home
现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用如下命令切换登录用户:
$ su -l lilei
输入刚刚设置的 lilei 的密码,然后输入如下命令并查看输出:
$ who am i
$ whoami
$ pwd
退出当前用户跟退出终端一样可以使用 exit
命令或者使用快捷键 Ctrl+d
。
将其它用户加入 sudo 用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:
# 注意 Linux 上输入密码是不会显示的
$ su -l lilei
$ sudo ls
会提示 lilei 不在 sudoers 文件中,意思就是 lilei 不在 sudo 用户组中,至于 sudoers 文件(/etc/sudoers)你现在最好不要动它,操作不慎会导致比较麻烦的后果。
使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
这里我用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限:
$ su shiyanlou # 此处需要输入shiyanlou用户密码,点击右侧工具栏“SSH直连”,可以看到密码。
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
然后你再切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了。
删除用户是很简单的事:
$ sudo deluser lilei --remove-home
linux目录
关于上面提到的 FHS,这里还有个很重要的内容你一定要明白,FHS 是根据以往无数 Linux 用户和开发者的经验总结出来的,并且会维持更新,FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态,如下表所示:
使用 cd
命令可以切换目录,在 Linux 里面使用 .
表示当前目录,..
表示上一级目录(注意,我们上一节介绍过的,以 .
开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a
命令查看隐藏文件), -
表示上一次所在目录,~
通常表示当前用户的 home
目录。使用 pwd
命令可以获取当前所在路径(绝对路径)。
进入上一级目录:
$ cd ..
进入你的 home
目录:
$ cd ~
# 或者 cd /home/<你的用户名>
使用 pwd
获取当前路径:
$ pwd
关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin
,表示根目录下的 usr
目录中的 local
目录中的 bin
目录。
相对路径
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 .
为起点,以你所要到的目录为终点,表现形式如:usr/local/bin
(这里假设你当前目录为根目录)。你可能注意到,我们表示相对路径实际并没有加上表示当前目录的那个 .
,而是直接以目录名开头,因为这个 usr
目录为 /
目录下的子目录,是可以省略这个 .
的(以后会讲到一个类似不能省略的情况);如果是当前目录的上一级目录,则需要使用 ..
,比如你当前目录为 home
目录,根目录就应该表示为 ../../
,表示上一级目录( home
目录)的上一级目录( /
目录)。
下面我们以你的 home
目录为起点,分别以绝对路径和相对路径的方式进入 /usr/local/bin
目录:
# 绝对路径
$ cd /usr/local/bin
# 相对路径
$ cd ../../usr/local/bin