• Jesse
    2019年7月20日 11:23

    这篇文章我们来聊一下一些特定文件的权限问题。在开始之前我们需要先弄明白如何创建用户,如何修改用户权限,如何设置用户组等等。本篇文章使用的操作系统是Ubuntu 18.04。

    新建用户

    使用 VPS 或者 ECS 创建好服务器之后,默认只有 root 用户,但是一般我们建议禁止 root 用户直接登录。因此新建一个权限相对没这么大的用户就很有必要了。新建用户的方式是登录之后,输入命令:useradd <username> -m,稍微解释一下这本命令。

    • useradd 是新增用户的命令。
    • 你需要将 <username> 替换成你希望创建的用户名,注意不需要输入尖括号。
    • -m 表示创建用户的同时创建用户目录。

    输入完这条命令之后,你还需要为该用户指定密码,因此执行 passwd <username> (请替换 <username> 为你的用户名,下同,不再赘述),然后输入密码。

    修改用户组

    用户创建好了,没有管理员权限,我们需要给该用户添加管理员权限,操作方式是,将当前用户加入 sudo 组。执行 usermod -a -G sudo <username>。这时该用户就可以使用 sudo 命令了。

    修改文件权限

    开始将文件权限之前,我们首先要了解一个文件权限的组成,请看下面的代码及注释:

    -rw-r--r-- 1 jesse jesse    3877 Jul 20 09:33 .bashrc
    drwx------ 1 jesse jesse     512 Jul 17 17:42 .config/
    

    请看上面两行,展示的是文件或文件夹所属的用户及用户组均是 jesse。然后,我们来看前面的这一段-rw-r--r--drwx------ 1。我们需要注意的是,文件的权限有三种形式,分别是,文件拥有者权限,同组用户权限以及其他用户权限。每组权限都用rwx表示,这三个字母的意思分别是:
    - r: 可读
    - w: 可写
    - x: 可执行

    细心的你发现,欸,不对,不是说三个字母表示一组权限吗?为什么有 10 个字符呢?答案是第一个字符表示的是文件的属性。_ 表示该文件类型是文件,d 表示该文件类型是文件夹。明白了吧。我们继续。
    所以我们看第一个文件 .bashrc,这个文件的权限是拥有者可读可写,同组用户仅可读,其他用户仅可读。好了,到这里我们需要去修改文件权限了。有两种方式,一种是字母法,一种是数字法。

    字母法

    字母法:chmod u/g/o/a +-= rwx file

    首先我们来解释一下上述文字,u/g/o/a 表示修改的权限组,+-= 表示修改的方式,rwx表示修改的权限。

    • u:表示用户权限
    • g:表示同组权限
    • o:其他用户权限
    • a:所有类型,同时修改这三者
    • +:表示增加权限
    • -:表示撤销权限
    • =:表示设定权限
    # 这里我们将需要修改权限的文件表示为 file,请自行替换
    # 默认 file 文件权限
    -rw-rw-rw- 1 jesse jesse       2 Jul 20 10:49 file
    
    chmod u=rw,o=r file
    # 这里我们将file文件的权限设定为拥有者可读写,同组用户可写,其他用户仅可写,同组用户不变。
    
    # 修改之后 file 文件权限
    -rw-rw-r-- 1 jesse jesse       2 Jul 20 10:59 file
    

    数字法

    数字法是将rwx 简化成数字,具体如下:

    • r: 可读,用数字 4 表示
    • w: 可写,用数字 2 表示
    • x: 可执行,用数字 1 表示

    因此,如果我们希望将 file 文件权限修改为,所属用户可读可写可执行,同组用户可读可写,其他用户无操作权限,使用数字法表示为:

    chmod 760 file
    
    # 执行之后文件的权限
    -rwxrw---- 1 jesse jesse       2 Jul 20 10:59 file*
    

    以上就是关于文件权限的修改方式。

    删除用户

    对于多余的用户,我们如果希望删除可以执行userdel <username>,如果希望同时删除用户的主目录,可以执行userdel -r <username>

    其他

    除了上面介绍的命令之外,还有一些我们可能也用的到,这里简短介绍一下。

    • whoami:查看当前用户。
    • who:查看当前所有登录系统的用户。
    • exit:退出当前登录账户。

    特定文件权限

    .ssh 文件下文件的权限

    • rsa_id.pub 及authorized_keys权限一般为644
    • rsa_id权限必须为600