02、用户管理

用户分类:
按系统分:
根用户(管理员)  用户id为0,如root
 
系统用户 
用户id在 1-499 之间
这些用户主要是系统内置的一些程序或服务使用的
 
普通用户 管理员创建的,使用、登录系统的用户
用户id 一般从 500 开始
按作用分:
管理员
 
普通成员
 
用户识别不是靠用户名的,而是用户id (uid)
 
与用户和组相关的配置文件
/etc/passwd    帐号
/etc/shadow   密码
/etc/group 组名
/etc/gshadow 组密码
 
/etc/login.defs 帐号限制文件
/etc/default/useradd 新建用户的默认规则文件
/etc/skel 默认用户家目录模板
/etc/passwd 文件解释
root:x:0:0:root:/root:/bin/bash
.......
tom:x:500:500::/home/tom:/bin/bash
mary:x:501:501::/home/mary:/bin/bash
文件由冒号分隔成7段
第一段:用户名
第二段:密码,x 表示密码             放在 /etc/shadow为空表示登录不要密码也有把密码直接放在这里了
第三段:用户id
第四段:组id (主要组)
第五段:注释、描述
第六段:家目录
第七段:使用的shell, nologin是不能登录的
/etc/shadow文件解释
tom:$6$vDEz/2Mn $zVObUxy6QALb.8crTWB7JRsleXz56Un4Ia93ES6m8eaPcBjWUwThxo9wub/H2wESuwgFJUDu51GUwm3OUshQ.:15644:0:99999:7:::
mary::15644:0:99999:7:::
第一段:用户名
第二段:密码
第三段:上次修改密码的时间(15644),表示的是距离1970年1月1日的天数
第四段:两次修改密码的最小间隔天数
第五段:密码的有效期
第七段:密码到期的多少天提示
第八段:帐号的过期时间,以距离1970年1月1日的天数来表示的
第九段:暂时未用
/etc/group文件解释
tom:x:500:
mary:x:501:
第一段:组名(默认建一个用户后,会建一个同名的组)
第二段:组密码
第三段:组id(gid)
第四段:组成员
/etc/gshadow文件解释
tom:!::
mary:!::
 
第一段:组名
第二段:组密码
第三段:组管理员
第四段:组成员
 
用户管理命令:
useradd 创建用户
option:
    -g 指定gid (主要组,唯一的)
    -G 指定要加入的组(可以有多个)
    -s  使用的shell
例: useradd tom
 
注:建了用户后,会在用户的家目录下产生几个隐含的文件 .bash_profile .bashrc
   这些文件是从/etc/skel 拷来的
 
groupadd 创建组
格式: groupadd [option] 组名
option:
    -g   指定组的id(gid)
 
例:groupadd admin
 
 
gpasswd 管理组
[option]   
    -a 为组添加成员
    -d 将成员删除
 
    -A 指定组的管理员
    -R 限制用户临时登录到组,只能组中的成员才可以使用本组身份
 
验证方法:
cat /etc/group
cat /etc/gshadow
 
id u1
id tom
id u2
id mary
 
指定一个组的管理员,然后用管理员再去加成员
useradd u4
gpasswd -A tom g1
su - tom
gpasswd -a u4 g1
 
 
newusers  根据一个配置文件创建用户
    格式: newusers 文件名
[root@s100 test]# cat myfile
uu:x:510:508::/home/uu:/bin/bash
uu4:x:511:510::/home/uu4:/bin/bash
 
[root@s100 test]# newusers myfil
passwd 设置用户密码
    格式:passwd [用户名]
    passwd 不加用户名,设置自己的密码,如果加了用户名就是设置其他用户的密码。另:新建的用户,如果没设置密码是不能登录的
 
    passwd 的其它功能
-l    锁定帐号(这种锁定实际是在密码前加 !! )
-u      解锁
 
usermod 修改用户信息
    option:
-l   username 修改用户名
-g   groupname   修改主要组
-G   groupnames 修改用户加入的组
-u   uid 修改uid
-s   shell 修改其shell
 
 
userdel  删除用户
    语法:userdel [-r] 用户名
 
id 查看用户和组信息
    
例:id
id mary
id tom
id u3
su  切换用户
    su  用户名
    
    su - 用户名
 
    su -   这种方式会应用新用户的环境变量(即会对新用户进行初始化),如果没有 -
           用户信息从上一个用户继承
 
    如果再回到上一个用户,建议使用 exit ,而不是再次 su - ...
    
    另,有时候,只想以某个用户的身份运行一些命令,那可以
 
    su - username -c 'command'
 
    例:su - mary -c 'echo $HOME'
 
groupmod  修改组信息
[option]
-g  gid 修改组的id
-n  group_name 修改组名
 
例:将组dept 改成 abc
groupmod -n abc dept
 
groups 显示当前用户加入了哪些组
    groups
 
newgrp  临时加入到一个组
    格式:newgrp   group_name
 
    exit 退出
 
who    查看登录到服务器的用户
wall  发广播
wall
输入信息
ctrl + d 结束输入
 write 给指定用户发消息
write mary
输入信息内容
ctrl + d 结束输入
mesg  查看设置是否接收信息
mesg y   --接收
mesg n   --不接收
权限
linux 中文件访问用户分类
u    属主
g   开放组
o   其它用户
 
a   所有用户
 
 
linux 文件目录的基本权限
r(4)
w(2)
x(1) 执行
 
 
基本权限对文件、目录的作用
r 对文件来讲,它可以看它的内容
对目录来讲,它可以看它下面有哪些文件和子目录(ls)
 
w 对文件来讲,可以修改它的内容
对目录来讲,它可以在它下面创建子目录和文件,也可以删除目录和文件
 
x 对文件来讲,它可以运行
对目录来讲,它体现为,是否可以进去 (cd)
 
能不能读文件内容取决于:对方件是否有读权限
 
能不能把文件删除取决于:看对文件的上一级目录是否有写权限
 
能不能修改文件内容取决于:主要是看对文件是不是有写权限,
 
如果对文件没有写权限,但是对它的上一级目录有写权限,可以在命令行下,强制修改
 
设置权限:
    chmod 权限指派  文件名
 
    权限指派的方法:
u=rwx,g=r,o=   --指派每类用户的权限(不管原来是什么权限)
u=rw,g=rw,o=r
u+x,g-x        --在原有权限基础上进行权限的添加与去除
 
 
755          --数字法,每类用户用1位数,第1位数,对属主设置
                 2位数,对组设置,第3位数,对其它用户设置
 
    例:创建一个文件,自己可以读写、同组的用户只能读,其它用户不能访问
touch a
chmod u=rw,g=r,o= a
chmod 640 a
 
    例:创建一个文件,所有用户只能读
touch b
chmod a=r b
chmod u=r,g=r,o=r b
chmod 444 b
 
chown 设置属主和组
    格式:chown 用户名:组名 文件名
    例:将文件属主设置为 mary,开放给dept组
touch c
chown mary:dept  c
 
 
默认权限:
    默认由umask 决定的,umask 表示要去掉的权限
    由于安全方面的考虑,文件生下来就没有执行权,所以文件和目录的默认权限计算方法:
目录:  777 - umask
文件:  666 - umask
 
 
    要设置文件或目录的默认权限,那就要修改umask,umask 对每个用户都可以设置为不同
 
修改umask方法:
    修改一个用户:
vim ~用户名/.bashrc
 
     umask 222
        如:
    vim ~mary/.bashrc
umask 222
 
    修改所有用户:
vim /etc/bashrc
 
umask ...
 
查看umask
umask
 
    临时修改:
umask 222
 
 
 
特殊权限:
    权限名       对文件的影响            对目录的影响                       设置方法
   sticky(t)        不适用            只有属主才能删除自已的文件             chmod o+t  或 chmod 1xxx
                                
 
原文地址:https://www.cnblogs.com/steven9898/p/11331161.html