Day29 Linux 用户管理

Linux文件属性 

Linux为保护系统的安全性,对不同的用户访问同一文件的权限做了不同的规定

文件类型:表示该文件是文件夹还是文件,若是文件夹,则加上d,否则不加d

属主权限:表示权限最大的root用户可以进行的操作:可读可写可执行

属组权限:表示指定某一个组内的成员用户可以进行的操作:可读可执行但不可写

其他用户权限:表示除了上述两种用户的其他用户可以进行的操作:可读可执行不可写

root root:第一个root表示主用户,第二个root表示组用户

后面的数字表示存储空间大小,之后是时间

用户组管理

用户组的管理包括用户组的添加、删除和修改

与用户组相关的文件在etc/group中

用户组添加

命令:groupadd

作用:添加组

语法:groupadd [参数选项 选项值] 用户组名

选项:-g:设置用户组ID数字,如果不指定,则默认从1000之后递增(1-999是系统组)

当执行完添加用户组时,终端不会有反应,直接输出下一行,这就表示用户组添加成功。

 再次创建相同的组时会提示

使用cat /etc/group查看已经创建的用户组

这其中hr是用户组名称,x是占位符,可以用来设置密码,一般不需要设置,1000是用户组ID

 用户组修改

命令:groupmod

语法:groupmod [选项 选项值] 用户组名

选项:-g :gid缩写,设置一个自定义的用户组的ID数字

-n:设置新的用户组的名称

groupmod -g 用户组ID -n 新的用户组名称 旧的用户组名称

修改hr用户组,将组ID改为1100,将名称也更改为superman,查看更改后的用户组

 用户组删除

命令:groupdel

语法:gorupdel 用户组名称

删除superman用户组:

 

用户管理

 用户管理涉及用户的添加、删除、修改

与用户管理相关的文件在/etc/passwd

添加用户

命令:useradd

语法:useradd [选项 选项值] 用户名

选项:

-g :表示指定用户的用户是主组,选项值可以是ID或者组名

-G:表示指定用户的用户附加(额外)组,选项值可以是ID或者组名

-u :uid,用户的id(用户的标识符),系统默认会从500 /或1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】

-c:comment,添加注释(选择是否添加)

-s:指定用户登入后所使用的shell 解释器,默认/bin/bash【专门的接待员】,如果不想让其登录,则可以设置为/sbin/nologin   (重要)

-d:指定用户登入时的启始目录(家目录位置)

-n:取消建立以用户名称为名的群组(了解)

先创建一个用户组superman,再创建一个用户,为用户组中的用户

 

 

  存储用户信息的文件 

组成:

 用户名:密码占位符:用户ID:用户组ID:注释:家目录:解释器

这里是使用了参数进行床架用户的

注意:若不用任何参数,创建用户,系统会默认执行以下操作:

1)在 /etc/passwd 文件中创建一行关于dahei用户的数据
 2)在 /etc/shadow 文件中新增了一行关于dahei密码的数据
 3)在 /etc/group 文件中创建一行与用户名相同的组,例如dahei
 4)在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息,例如dahei
 5)自动创建用户的家目录,默认在/home下,与用户名同名

用户名:登录linux时使用的用户名

密码:此密码位置一般情况都是"x",表示密码的占位,真实密码存储在/etc/shadow

用户ID:用户的识别符,每个用户都有唯一的UID【-u】

用户组ID:该用户所属的主组ID;【-g】

注释:解释该用户是做什么用的;【-c】

家目录:用户登录进入系统之后默认的位置;【-d】

解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,转换成机

为公司添加新员工,属于superman,用户ID1200,不允许登录系统,即解释器为/sbin/nologin

添加格式:useradd [选项 选项值] 具体的值 。。。 用户名

查看新员工:

用法二:useradd -G 附加组名 -u 用户ID -s /sbin/nologin -c "shuser lisi" 用户名
示例代码:
#useradd -G gzhr -u 1200 -s /sbin/nologin -c "gzuser lisi" lisi
含义:创建用户lisi,不带任何选项。

 gzhr行的含义:在gzhr的组里(组id 是1002)有一个组内用户lisi(lisi 的附加组就是1002,附加组的名字是gzhr)。
如果需要为一个用户指定多个附加组,只需要将多个附加组的id 通过英文逗号“,”分割即可。

创建一个新的用户组,再创建一个用户erhei,该用户有多个附加组。

现在有两个用户组:superman,smartman

 查看其附加组是否生效:进入到/etc/group中查看其用户组

注意:

1、主组只能有1 个(类似于亲生父母只有一对),附加组可以多个,也可以没有附加组(类似于认干爹干妈,可以有也可以没有,也可以有多个)
 2、主组必须有
3、后期将权限管理的时候,关于文档的属组指的是主组(了解) 

查看用户信息

 命令:id

语法:id 默认显示当前执行该命令的用户的基本信息

语法:id 用户名,显示该用户名的基本信息

 修改用户

命令:usermod

语法:usermod   [选项  选项的值]   …  用户名

将erhei的用户组名改为新创建的用户组名

 -g:表示指定用户的用户主组,选项值可以是ID或者组名

 -G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名

   -u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】

-L:锁定用户,锁定后用户无法登陆系统lock

-U:解锁用户unlock

 -c<备注>:修改用户帐号的备注文字

-d<登入目录>:修改用户登入时的目录

 -s<shell>:修改用户登入后所使用的shell

修改用户密码

命令:passwd

语法:passwd 用户名(如果不指定用户名则修改自己的密码)

这里更改erhei的密码为12345678

 这里会提示过于简单化,但再次输入等同于忽略简单化强行设置为这个密码

设置完成后密码会存放在/etc/shadow中,保证了密码的安全性,而且这里面的密码都是加密的,无法看懂

切换用户

命令:su

语法:su 用户名

注意:
a. 从root 往普通用户切换不需要密码,但是反之则需要root 密码;
b. 切换用户之后前后的工作路径是不变的,添加了选项[-]会自动切换到用户的家;
c. 普通用户没有办法访问root 用户家目录,但是反之则可以:

 这里会提示权限不够,因为是普通用户访问其他用户,但是root用户可以

删除用户

 命令:userdel

语法:userdel 选项 用户名;删除账户及其对应家目录

选项:-r:表示删除用户的同时,删除其家目录/home下的对应文件夹

 注意:已经登录的用户删除的时候提示删除失败,但是没有登录的用户可以正常删除,那这个时候想删除已经登录的用户怎么办呢?这是由于已经登录的用户正在占用进程

解决办法:使用kill命令 对应用户的全部进程

使用ps -ef | grep 用户名,检索正在运行的进程

使用kill -9 用户名强制删除

修改用户

权限分配

chmod:修改权限

格式1:(使用相加减表达权限)
            chmod [选项] [权限修改] [文件]
格式2:(使用数字表达权限)
            chmod [选项] [权限修改] [文件]    
            4:读
            2:写
            1:执行
            7:全部
       注意:如果只给一个数字表示修改o,两个表示修改go
        选项:
            -R:迭代修改

    chgrp:修改用户组
        格式:
            chgrp [选项] [组名] [文件或目录]
        选项:
            -R:表达迭代修改
        注意:文件或目录的所有用户或所有组,都是以编号来查询所有用户或所有组
            如果不存在就显示编号,存在显示名称
    
    这里将之前的一个目录test的附加组改为了bigdata组,加入-R表示其下的所有文件的附加组全部改为bigdata组

chown:修改所属用户
        格式:
            chown [选项] [组名] [文件或目录]
        选项:
            -R:表达迭代修改
    
    这里就是更改test的主组为erhei

若是不加-R,则只是更改该文件夹的主组或者附加组,其目录下的文件夹还是原来的主组和附加组

 创建一个新用户sanhei,将test2的主组设置为sanhei,附加组设置为bigdata

当切换到erhei用户时,erhei可以访问到test2目录,但不可以对其进行修改,因为权限不够

sudo:越权执行
        格式:
            sudo 命令
        注意:sudo实际上去借root权限执行命令(root对普通用户分配了权限)

 其他的一些功能

查找
    find
        格式:
            find 开始查找路径 [选项] [条件]
        选项:
            -name
                *表示匹配所有
                ?表示匹配一个
                例如:从/开始查找后缀为.txt
                    find / -name "*.txt"
            -type    
                d:表示目录
                f:表示文件
                例如:从/开始查找文件
                    find / -type f
            -size
                ll --block-size=单位 
                    例如:大小以k为单位进行显示
                        ll --block-size=k
                注意:条件需要给上单位
                    +表示大于
                    -表示小于
                    不给就是等于
                例如:从/开始查找文件大小大于2k
                    find / -size +2k
            -user
            -group
Linux常见符号
    |:管道,把前面一部分的内容交给后面去处理
    例如:
        cat /etc/profile | more

    grep:筛选
        格式:
            grep 筛选条件

    >>:追加,把命令1的结果写入到命令2
        格式:
            命令1 >> 命令2 
        例如:cat profile >> test.txt
    >:覆盖
        格式:
            命令1 > 命令2 
        例如:cat profile > test.txt


版权声明:本文为m0_64350718原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。