Linux权限管理:玩转root与用户组
root用户和权限
root用户(超级管理员)
在Linux中root的用户权限是最高的,我们平时使用的用户都是user用户,普通用户。
例如我们在普通用户下创建一个文件夹,可能会显示权限不够,但我们转到root用户下,就可以了
这里权限不够
这样就可以了
那么我们该怎么切换呢,这样然后再输入密码就可以了
su - root
就可以了,然后如果我们想退出就exit()或者快捷键Ctrl + d也行。
长期在root模式下可能会给系统造成损坏,并且不可修复,那么如果我们只想用sudo执行一行代码还要来回切换是不是很烦,这个时候我们可以使用sudo指令来实现
但是我们会发现,这里说我们不在文件中,说明root并没有把我们加入到文件中,下面我们来加入一下
首先我们先进入root用户下,然后vi /etc/sudoers,在这个文件的最后那一行输入
(我们的用户名) ALL=(ALL) NOPASSWD:ALL
然后在:wq!然后就可以了,等再退回我们的用户状态下就可以了。
用户和用户组
在Linux中存在有多个用户的,并且这些用户可以分组,还可以一个用户在多个组中。这个时候我们可以对每个组进行权限分配。
用户组管理
我们可以使用(都要在root用户下执行)
创建了一个用户组 groupadd 用户组名
删除用户组 groupdel 用户名
用户管理
创建
useradd [-g -d] 用户名
[-g]指定用户的组,如果没有指定-g,就会默认创建一个同名组并加入,指定-g的组一定要已经存在,如果已经存在同名组的话必须要使用-g
[-d] 指定用户的HOME路径,不指定,HOME目录默认在/home/用户名
我们先不使用参数
我们可以看到创建了一个并且自动放到了home文件夹下面了
这个我们来使用参数,这里我们指定了一个用户组,且让他创建在一个test666的文件夹下面了
删除
userdel [-r] 用户名
这里如果不-i,就会用户删除了,但部分配置文件还在存留在home文件夹下,所有我们要加-r删除
就像这样,并且再次创建会报错(这样报错我们可以吧test文件夹给删掉,然后再回到~目录下创建就行了)
这样加上-r之后就会删干净了
查看用户所属组
id [用户名] 如果不加用户名则查看自己
修改用户所属组
usermod -aG 用户组 用户名
将指定用户加入指定用户组中
getent
使用gentent passwd可以查看当前系统中有哪些用户。
权限控制
认知权限信息
在这个中第一列一共有十个槽位,下面是细节
其中r表示可查看,w表示可写,x表示可更改工作路径到这个文件夹中
第三列表示所属用户
第四列表示所属用户组
chmod命令
语法 chmod [-R] 权限 文件或文件夹
-R,对文件夹内的全部内容应用同样的操作
chown命令
使用chown命令,可以修改文件,文件夹的所属用户和用户组
语法 chown [-R] [用户][:][用户组] 文件或文件夹
选项,-R,同chmod,对文件夹内全部内容应用相同规则
用户,修改所属用户
用户组,修改所属用户组
:用于分割用户用户组
示例
chown root hello.txt(将hello.txt所属用户修改为root)
chown :root hello.txt(将hello.txt所属用户组修改为root)
chown root:zhang123 hello.txt (将hello.txt所属用户修改为root,所属用户组修改为zhang123)
好啦,到这用户和用户权限的操作我们就学完了!