做美食教程的网站有哪些,哪些是网站建设,自己做的网站外网访问,厦门创意互动网站建设基本操作首选我们梳理一下 Linux 下的用户、用户组、文件权限等基本知识#xff0c;然后后面通过一个案例来实际演示一下权限设置的一些操作。首先 Linux 系统中#xff0c;是有用户和用户组的概念的#xff0c;用户就是身份的象征#xff0c;我们必须以某一个用户身份来操…基本操作首选我们梳理一下 Linux 下的用户、用户组、文件权限等基本知识然后后面通过一个案例来实际演示一下权限设置的一些操作。首先 Linux 系统中是有用户和用户组的概念的用户就是身份的象征我们必须以某一个用户身份来操作一个系统实际上这就对应着我们登录系统时的账号。而用户组就是一些用户的集合我们可以通过用户组来划分和统一管理某些用户。比如我要在微信发一条朋友圈我只想给我的亲人们看难道我发的时候还要一个个去勾选所有的人这未免太麻烦了。为了解决这问题微信里面就有了标签的概念我们可以提前给好友以标签的方式分类发的时候直接勾选某个标签就好了简单高效。实际上这就是用户组的概念我们可以将某些人进行分组和归类到时候只需要指定类别或组别就可以了而不用一个个人去对号入座从而节省了大量时间。在 Linux 中一个用户是可以属于多个组的一个组也是可以包含多个用户的下面我以一台 Ubuntu Linux 为例来演示一下相关的命令和操作。用户和用户组 首先查看所有用户命令如下cut -d: -f 1 /etc/passwd结果 这里一行就是一个用户名由于太多部分就省略了实际上这个命令就是从密码文件中把用户名单独列出来了。 然后查看所有用户组命令也是类似的cut -d: -f 1 /etc/group结果 结果基本是类似的因为每个用户在被创建的时候都会自动创建一个同名的组作为其默认的用户组。这里我是使用 ubuntu 这个账号来登录的下面我来看下 ubuntu 这个账号是属于哪些组。功能 在Linux中 useradd 命令用来创建或更新用户信息。 useradd 命令属于比较难用的命令 (low level utility for adding users)所以 Debian 系的发行版中建议管理员使用 adduser 命令。其实 adduser 命令只是一个调用了 useradd 命令的脚本文件。 本文将详细分析群组和家目录相关的选项。并且以实例的方式介绍常用的 useradd 命令写法。语法和基本选项注意本文并不是一个完整的文档所以仅列出部分常用的选项进行说明。useradd [option] username[option]:-d 指定用户登入时的目录。-g 初始群组。-G 非初始群组。-m 自动创建用户的家目录。-M 不要创建用户的家目录。-N 不要创建以用户名称为名的群组。-s 指定用户登入后所使用的shell。 查看一个用户所属组的命令格式如下groups 这里就是 groups 命令加上用户名就能查看该用户名所属的组了如果不加用户名的话就默认是当前用户。例如查看 ubuntu 这个用户所属于的组命令如下groups ubuntu结果ubuntu : ubuntu adm cdrom sudo dip plugdev lxd lpadmin sambashare 还不少这个用户被分配到了很多组下比如同名的组 ubuntu还有 sudo 组另外还有一些其他的组。其中 sudo 组比较特殊如果被分到了这个组里面就代表该账号拥有 root 权限可以使用 sudo 命令。了解了怎样查看用户所属的组我们也应该反过来了解如何查看一个用户组里面包含哪些用户啊。 查看某个用户组下所有用户命令如下members 不过这个命令不是自带的需要额外安装 members 包命令如下sudo apt-get install members 例如查看 sudo 用户组下的所有用户即拥有 root 权限的用户members sudo 结果ubuntu hadoop 可以看到拥有 root 权限的用户有两个ubuntu 和 hadoop当然不同的机器结果肯定是不一样的。接下来介绍一个比较有用的命令就是 id 命令它可以用来查看用户的所属组别格式如下id 例如查看 ubuntu 用户的信息就是这样id ubuntu结果uid500(ubuntu) gid500(ubuntu) groups500(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare) 这里有一个 gid作为主工作组后面还有个 groups它列出了用户所在的所有组。主工作组只有一个而后者的数量则不限。可以看到用户组的结果和使用 groups 命令看到的结果是一致的。 接下来我们再来了解一下如何创建一个用户和怎样为用户分配组别。 添加一个用户命令格式如下sudo useradd 比如我要添加一个用户 cqc命令就可以这么写sudo useradd cqc 这里使用的命令前面都带有 sudo因为毕竟是系统级别的操作。 添加一个组的命令格式如下sudo groupadd 格式是类似的后面跟一个组的名称就可以了例如我要为我的实验室创建一个用户组那么就可以使用如下命令sudo groupadd lab 创建完了用户和组那得把它们关联起来吧关联的意思就是把某个用户加入到某个组里面命令格式如下sudo useradd 或者使用 usermod 命令sudo usermod -G 如果要添加多个组的话可以通过 -a 选项指定多个名称sudo usermod -aG 例如我要将 cqc 用户添加到 sudo 用户组中命令就是sudo useradd cqc sudo 或sudo useradd -G sudo cqc 这样就为用户和用户组做好关联了。细说用户组 首先我们要搞清楚什么是初始群组简单来说在 /etc/passwd 文件中每行的第四个字段指定的就是用户的初始群组。用户登录后立即就拥有了初始群组中的权限。 下面我们通过不同的命令来查看群组选项的用法sudo useradd tester1 没有使用任何群组相关的参数默认在创建用户 tester1 的同时会创建一个同名的群组。用户 tester1 的初始群组就是这个新建的群组。sudo useradd tester2 -N 这次我们使用了 -N 选项即不要生成与用户同名的群组。查看下 /etc/passwd 文件发现 tester2 用户的初始群组ID是100。这个100是哪来的有ID为100的群组吗其实100作为 -N 的默认值是写在配置文件中的。不管有没有ID为100的群组都是这个值。当然我们也可以通过修改配置文件来改变这个默认值sudo useradd tester3 -g sudo sudo 是一个非常有权势的群组我决定把 tester3 加入到这个群组。好现在去查看一下 /etc/passwd 和 /etc/group 文件看看有没有新的群组被创建 tester3 的初始群组又是谁这次没有创建与 tester3 同名的群组。用户 tester3 的初始群组变成了 sudo。sudo useradd tester4 -G sudo 和上一条命令相比我们只是把小写的g替换成了大写的G。但结果可相差太多了请您一定要好好的检查 /etc/passwd 和 /etc/group 文件。因为这次不仅创建了群组 tester4它还是用户 tester4 的初始群组。和tester1 的唯一不同是 tester4 被加入了 sudo 群组。 在实际的使用中tester3 和 tester4 的场景都是比较常见的需要根据实际情况进行区分。细说家目录 Useradd 命令对用户家目录的处理让人困惑下面我们将通过实验来了解家目录相关的不同选项的使用方法sudo useradd tester1 让我们重新看看创建用户 tester1 这条命令。它不会为用户 tester1 创建名为 tester1 的目录作为家目录但是我们打开 /etc/passwd 文件发现 tester1 的记录中居然包含了家目录 /home/tester1。tester1:x:1005:1005::/home/tester1: 这让人不可思议但这条命令确实是这么实现的。sudo useradd -m tester5 若要在创建用户的同时创建用户的家目录必须指定 -m 选项。sudo useradd -d /home/abc tester6 我们希望自己指定家目录此时不生成目录 abcsudo useradd -d /home/abcd -m tester7 此时生成目录 abcd并且目录下默认存在文件常见用例Case 1: 创建一个带有家目录并且可以登录 bash 的用户sudo useradd -m -s /bin/bash tester1Case 2: 指定创建用户家目录的路径sudo useradd -m -d /home/xxx tester2 /home/xxx目录会被创建。Case 3: 创建用户家目录且能登录bash的用户所属组同时填写用户密码useradd -m -s /bin/bash -d /home/test/ -G root -p xxxxxx tester3Case 4: 创建一个没有家目录且不能登录的用户sudo useradd -s /sbin/nologin tester3Case 5: 创建时把用户加入不同的用户组sudo useradd -m -G xxx,sudo tester4注意过个组名使用逗号分隔不能有空格。