Linux背背背(6)

目录

1.用户

2.用户组

3.权限设置

用户管理

添加用户

命令:useradd

语法:#useradd 用户名

所有的用户添加之后都会存储在一个文件中,会存储在passwd文件中,位置位于/etc/passwd

tcpdump:x::::/:/sbin/nologin
pl:x:::centos:/home/pl:/bin/bash 天蓝色:表示用户名;
紫色:x表示密码部分。此段的x并非表示密码是x,而是一个占位符;因为passwd文件是每个用户都有读权限,所以如果将紫色部分直接显示密码肯定是不安全的,所以Linux中密码是单独的存储在另外一个文件中,使用了shadow的技术,将密码等重要信息存储在shadow文件中,文件的位置在/etc/shadow。
前面的红色数字:表示是用户的id;
后面的红色数字:表示用户的用户组id;
蓝色:注释或者说是备注;
绿色:用户对应的家目录位置;
黄色:表示用户所对用的解释器的位置,如果后面是bash则表示该用户可以登录系统,如果是nologin,则表示该用户无法登录操作系统;

设置密码

命令:passwd

语法:#passwd 需要设置密码的用户名

用户编辑

命令:usermod       (user modify)

语法:#usermod 参数 需要修改的用户名

参数说明:

在Linux中,经常会用到的用户修改的参数有2个。

-l:表示给后面传递的用户修改用户名,语法格式:usermod -l 新的用户名 需要修改的用户名

-g:表示给后面传递的用户名修改用户组,语法格式:usermod –g 用户组id 需要修改的用户名

删除用户

命令:userdel         (user delete)

语法:#userdel 用户名

删除时报错userdel: user superstar is currently used by process 1

使用强制删除vipw

root@ www.linuxidc.com :/home# vipw

找到你之前创建的用户,用dd删除那行(记得保存:wq or :x)。。之后。

root@ www.linuxidc.com :/home# vipw -s

找到那个用户所属组,也dd干掉即可(记得保存:wq or :x)

为什么要vipw -s呢?原因只有一个,必须保证数据的一致性,不然可能会造成系统崩溃或者一些莫名其妙的问题 

命令小解:

root@ www.linuxidc.com :/home# vipw --help 

用法:vipw [选项]

选项: 

  -g, --group                  编辑 group 数据库
-h, --help 显示此帮助信息并推出
-p, --passwd 编辑 passwd 数据库
-q, --quiet 安静模式
-R, --root CHROOT_DIR chroot 到的目录
-s, --shadow 编辑 shadow 或 gshadow 数据库

用户组管理

添加用户组

命令:groupadd

语法:#groupadd 用户组名

china:x::

扩展:group文件中每个颜色所表达的含义

天蓝色:表示用户组的名字;

紫色:x表示密码的占位符,但是这个占位符没有意义,真的不存在密码;

红色:用户组的id;

最后的天蓝色:表示当前用户组内的成员名称;

蓝色:表示备注说明;

用户组编辑

命令:groupmod    (group modify)

语法:#groupmod 参数 用户组名

参数说明:

常规的用户组编辑操作就需要了解用户组的重命名

语法格式:#groupmod -n 新的用户组名 旧的用户组名

用户组删除

命令:groupdel

语法:#groupdel 需要删除的用户组名

注意:如果这个用户组中存在用户的话,则该用户组是无法直接删除的,如果需要删除的话,则可以先将组内的成员删除掉或者移动到别的组,然后才可以删除当前的用户组

特别说明

在Linux中只有超级管理员权限才能对用户和用户组进行设置,其他的用户一律没有权限设置

权限设置

权限设置主要是针对用户和用户组对于文件/文件夹的一个操作限制,只有有权限才能进行相应的设置,没有权限则设置不了。

在Linux中如何去查看一个文件/文件夹的权限呢?

答:可以通过ls的第2种、第3种用法来查看权限的信息。(通过ls的-l参数来查看)。

-rw-r--r--.   root root  Jun  : !
dr-xr-x---. root root Jun : . 第1个字符:表示文档的类型,d表示是目录,-表示是文件;
第2~4个字符:表示文件所有者的权限情况(u表示,user);
第5~7个字符:表示所有者同组的组内成员的权限情况(g表示,group);
第8~10个字符:表示除上述两类人员的其他用户的权限情况(o表示,other);

通过字符形式设置权限

命令:chmod

语法:#chmod 权限组成信息 需要操作的对象(文件夹/文件)

需要注意,如果操作的对象是文件夹,则需要加上-r参数,表示递归赋予权限

权限的组成信息,将语法进行拆分:

第一个情况:针对单个对象(ugo)的拆分

给某个组成部分添加读权限:#chmod u+r,g+r,o+r 需要操作的文件/文件夹

给某个组成部分删减读权限:#chmod u-r,g-r,o-r 需要操作的文件/文件夹

给某个组成部分的权限设置成一个目标值:例如将50.txt文件的权限全部的组成部分设置成rwx,则命令可以写成:#chmod u=rwx,g=rwx,o=rwx 文件名/文件夹名

第二个情况:设置全部的组成部分:

可以使用下面的这个语法:

#chmod a+r 文件             (表示给全部的组成部分添加读权限)

#chmod a-r 文件              (表示给全部的组成部分删减读权限)

#chmod a=rwx 文件       (表示给全部的组成部分权限设置成刻度可行可执行)

其中a表示全部(ugo组合)

通过数字的形式来设置权限

在Linux权限体系中支持使用数字的形式来表示权限的信息,比如说777表示全部的权限。

4表示读权限

2表示写权限

1表示执行权限

例如:如果说我想把50.txt这个文件的权限设置成所有者拥有全部权限,同组用户拥有读写权限,其他用户拥有读权限,则数字形式该写成?

全部权限=读+写+执行=4+2+1=7

读写权限=读+写=4+2=6

读权限=4

所以最终的权限数字应该是764

友情提示

在以后实际工作不要出现一个奇葩的权限:-wx。不要出现类似这样的权限,原因是读权限是最基本的,而你如果想写入,则必须先打开文件

上一篇:@OneToMany、@ManyToOne以及@ManyToMany讲解


下一篇:JDK1.8-Java虚拟机运行时数据区域和HotSpot虚拟机的内存模型