用户和组管理                        


**who whoami who am i的区别:**

whoami显示当前所处的用户

who am i是登录的用户

who显示当前所处的用户和登录的用户

vipw:修改时还有语法提示

getent passwd ftp

同号不同名的用户

框架 模板目录

可以用useradd -D查看

用户id指定多少都可

vim pass.txt

cat pass.txt|chpasswd

usermod:

    -u:
    -g:

一个用户的主组可以作为其他用户的附加组吗?


    答案:可以

**在没有管理员即没有进程号为0的用户时,系统重启有问题可以采用下列方法进行修复**

centos7 

1、不能启动linux系统时按虚拟机中的电源重启客户机

2、按e键

3、linux16行(到第二行结尾完整),最后加上init=/bin/bash|sh

4、按ctrl+x 进入下一界面

5、mount -o rw,remount /

6、nano /etc/passwd 修正

7、重启客户端


centos6

1、不能启动linux系统时按虚拟机中的电源重启客户机

2、按a键

3、空格,最后加上init=/bin/bash|sh 回车

4、mount -o rw,remount / 必须执行正确,否则文件只可读,不能修改

5、nano /etc/passwd 修正

6、重启客户端

4个文件的字段:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等) 

name:password:UID:GID:GECOS(注释个人信息):directory(家目录):shell(7个字段)

如 wang:x:1000:1000:wang:/home/wang:/bin/bash

/etc/group:组及其属性信息 

group_name:passwd:GID:user_list

组名:密码占位:组ID号:以此组为附加组的用户

/etc/shadow:用户密码及其相关属性 

login name:encrypted password:date of last password change:minimum password age:maximum

passwordage:password warning period:password inactivity period:account expiration date:

reserved field;

用户名:密码:最近修改日期(修改时距离1970年有多少天):最短使用期限(在这个天数内不能修改密码):最长使用期限(从修改开始经过多少天过期):警告天数:锁定天数(宽限天):账号过期天数:保留字段

/etc/gshadow:组密码及其相关属性

group name:encrypted password:administrators:members

组名:加密的密码:组管理员(可以有多个):以此组为附加组的用户

Linux组的类别:

     用户的主要组(primary group) 用户必须属于一个且只有一个主组

     组名同用户名,且仅包含一个用户,私有组;

     用户的附加组(supplementary group) 一个用户可以属于零个或多个附加组;

     如果某个组已经成为了某用户的主组,那么不能直接删除这个主组

命令总结:

getent passwd wang:在passwd文件中匹配wang用户的信息

pwunconv:将shadow中的密码返还到passwd中

pwconv:将生成的密码从passwd中转到shadow文件中

chfn wang:指定用户的描述信息

rpm -i /run/media/root/CentOS\ 7\ x86_64/Packages/finger-0.17-52.el7.x86_64.rpm:安装finger命令的包

finger wang:查看wang的描述信息

chfn -f '' wang:单独将名字替换为空的;相当于删除全名

usermod -d /home/wang wang:修改wang用户的家目录

chsh -s /bin/csh wang:修改wang用户的shell类型

usermod -s /bin/bash wang;修改wang用户的shell

useradd mage:创建mage用户

echo mage|passwd --stdin mage &> /dev/null:给mage用户设置密码;

authconfig  --passalgo=sha512 --update:改变密码的加密算法为sha512

openssl rand -base64 30 :生成随机数密码  长度30 但是生成的不止30个

usermod -U wangcai:将用户解锁一次(centos6以前的版本可以用此命令解锁无密码账户,centos6以后就不能了,命令只能解锁有密码账户但是还可以手动到文件中删除!!解锁)

chsh -s /sbin/nologin wang:将wang用户的shell修改以拒绝登录(一般用于系统用户);

usermod -L wang:锁定有密码的账号

service network restart:将网卡服务重新启动

net accounts:windows的密码使用期限的情况

date -d '45 day':显示被字符串描述的时间(即45天之后的时间)

date -s '45 day':设置时间为45天之后的时间

chage wang :设置wang用户的使用期限等信息

date -s 'last Monday':将时间设置为上一个星期一

passwd -e mage:将用户口令设置为立即失效(实质是改变shadow的最近修改期限为0)

chage -d0 wang:设置口令失效(改变shadow的最近修改期限为0)

id root:查看root用户的id信息(直接从相关文件读取信息)

id:查看当前登录用户的id信息,已经登录了就不从文件读取信息了,故信息比较滞后;

groups:显示当前登录用户的组信息

groups root:显示用户root的组信息(信息比较新)

gpasswd mage:设置mage组的组密码

newgrp mage:将当前用户的主组切换为mage;但是这种切换是临时的;重新登录后就会还原;

groupadd opts:创建opts组

gpasswd -A wang opts:将wang账号变成opts的管理员

gpasswd -a mage opts;将mage用户添加到opts组中;此命令只有组管理员有权限进行

gpasswd -d mage wang::将用户从wang组中移除

usermod -G mage wang:指定wang用户的附加组为mage

groupmems -a wangcai -g opts:将wangcai附加到opts组中

groupmems -l  -g opts:列出opts组的所有用户

groupmems -g mage -a wang:将wang加入mage组

vipw:编辑passwd文件,附带格式检查

vigr:编辑group文件,附带格式检查

grpck:对文件group文件进行检查

pwck:对文件passwd进行检查

id Tom:判断Tom用户是否存在

useradd:

  四个文件都改

    -u 指定id号

       useradd -u 1235 Tom

    -o 不检查id号是否唯一,和-u配套使用

       useradd -o -u 1235 Jerry (和上一个用户的id号相同,那么它们的权限就相同,但是登录时的用户名和用户id显示密码文件中的靠前的那个;用于新员工接替旧员工的时候)

    -g:指定主组

       useradd -g opts zrt    组必须事先存在

    -c:指定描述信息

       useradd -c "yeliangcheng" ylc

    -d:指定家目录(不存在)
        
        useradd -d /app/mayunhome mayun
      
        useradd -d /app mahuateng 目录存在时,不修改目录的主目录,也不复制skel目录下的东西
     
    -s:指定默认的shell

    -G:指定附加组 可以有多个 逗号隔开

    -N:user组为主组,而不创建

        useradd -N lyh

    -r:创建系统账号,默认不创建家目录

       useradd -r nginx 

    -r -d -m 在创建系统账号的同时强制创建家目录

       useradd -r -m -d /app/apache apache    

    -M:不创建家目录

        useradd -M leijun

 groupmems:

    -g, --group groupname 更改为指定组 (只有root)
 
    -a, --add username      指定用户加入组 

    -d, --delete username   从组中删除用户 

    -p, --purge               从组中清除所有成员 

    -l,  --list                 显示组成员列表 

 groupadd:

     -g GID: 指明GID号;[GID_MIN, GID_MAX] 

     -r: 创建系统组

  groupmod:

      -n group_name: 新名字 

      -g GID: 新的GID


 显示或更改默认设置 

    useradd -D :查看/etc/defaullt/useradd文件的信息

    useradd –D -s SHELL 修改/etc/defaullt/useradd文件的默认shell

    useradd –D –b BASE_DIR 修改/etc/defaullt/useradd默认的家目录

    useradd –D –g GROUP 修改用户的默认主组
            
   /etc/defaullt/useradd:useradd创建用户的默认配置文件

   /var/spool/mail:创建用户时生成的邮箱存放在这里

   /etc/login.defs 默认创建时的相关配置信息;有加密算法等信息

useradd -r -m -d /app/zabbix -s /sbin/nologin zabbix:创建一个系统服务的账号

cp -r /etc/skel /home/zhao:将skel目录复制过去改名作为zhao用户的家目录;

cp -r /etc/skel/.[^.]* /etc/aobama:也是复制文件构造家目录

newusers user.txt:将文件中的用户信息(必须符合passwd文件的格式)读取进行用户的创建 批量创建

cat pass.txt|chpasswd:批量改变用户密码

userdel Jerry:删除用户

usermod -l newTom Tom:改变用户的登录名

usermod -G '' newTom:将用户的附加组清空

usermod -d /app/magehome -m mage:指定mage的家目录并把数据移动过去,原来的位置没有数据

userdel -r li:删除li的所有相关信息(邮箱、家目录等)

userdel -rf zhao:将zhao用户强制删除(即使有其他终端在登录使用)

id -u wang:显示wang用户的uid

id -g wang:显示wang用户的gid

id -G wang:显示wang用户的所有组id(主组和附加组)

id -ng wang:显示wang用户的组名称;-n选项只能和ugG配合使用;自己不能单独使用

su wang:切换到wang用户,是非登录式切换;不会读取目标用户的最新配置信息,不改变当前工作目录;环境没有切换

su - wang:登陆式切换,会读取目标用户的配置文件,切换至家目录,完全切换;环境变化

su root -c 'cat /etc/shadow':一条命令完成切换到root执行完命令立马又退出来

groupadd -g 200 -r sysadmins:添加系统组,指定组的id号

groupdel opts:删除组(这个组中必须没有用户)

groupmems -l -g mage:查询mage组的所有成员

roupmems -p -g mage:删除mage组的所有成员;清空的是附加组中的

chmod o-r te:将te文件的其他用户的读权限去掉

chmod u=rw,g=r,o= te:

chown mage te:更改文件的所有者

chgrp mage te:更改文件的同组者

chown wang.wang te:将文件的所有者和组同时修改了

chown wang:wang te:同上

chown root: te:都改为root

chown :wang te:只改后面的

chown -R wang /app:递归改变/app下的所有文件目录的属主

chmod --reference f1 f2:参考f1设置f2的权限

chmod -R a+x /app/:给/app下的所有文件包括自身加x权限

chmod -R a+X /app/:给/app下的目录加执行权限,文件不加;但是如果其中有文件有执行权限,那么再用X给目录加权限同时那个有执行权限的文件就会三组用户都加上执行权限

chmod 764 f1:给文件用数字法设置权限 

chgrp -R wang /app:递归修改同组者

精简:

1、一个用户是否有管理员权限取决于他的id号是否是0;

2、用户只有在登录时得到令牌(id号),登录后不会再获取id号

3、将用户id号改为0,root的id号改为不是0的数;这种情况下重启机器也会有问题(通过修改/etc/passwd 文件);这种情况下,普通用户拥有了管理员的权限;而root反而只有普通用户的权限;

4、不推荐直接修改文件来改用户相关的信息,因为在其他文件中的用户信息也需要改变

5、修改passwd文件中的家目录,如果此目录存在,就有家只是没有配置文件而已;如果目录不存在,登录后提示没有找到家目录,将以/root目录作为临时家目录

6、shadow文件中的$1代表128位的md5算法,$6代表的是sha512加密算法

7、在shadow中的密码是经过加密的,其中随机数作为杂质再加上用户的密码明文一起进行算法加密;

8、空口令(shadow密码字段删空)的用户是可以进行登录的;默认创建的用户不设密码但shadow密码字段不为空是!!代表被锁定,不能进行登录;

9、新建文件默认组是主组;组密码是用来进行newgrp临时切换组的

10、创建用户默认的id号由系统指派,在65535之内;用户自己指定是多大都可以

11、用户临时切换主组 如果用户本不属于此组,则需要组密码

12、文件权限:
   
        r:读,查看
        w:写入
        x:可执行,如脚本
    chmod:
    who:u,g,o,a 属主、同组者、其他用户
    option:+,-,=
    permission:rwx

13、acl是访问控制列表,用于进行更完善的权限更改

14、传统权限的更改不支持fat32文件系统,支持xfs和ext4等;fat32文件系统也不支持文件属主和组的修改;

15、在wang登陆的时候修改某个文件(属主和属组都是wang)的属主是不可行的,但是可以修改属组(前提是wang用户在要修改的这个组中)

16、目录的权限:

         r:列出目录的文件列表;如果没有此权限,可以进行某些操作,但是看不到;

         w:文件是否可以删除取决于目录是否有读权限,和文件本身的权限没有关系;还可以创建文件;         

         x:可以进入目录,查看目录的文件元数据,文件节点号;这是个基础权限;
         
17、root账号rw无影响,但是受到x的影响;文件只要出现x,root用户就可以拥有这个权限

设置:

作业:

1、创建用户gentoo,附加组为bin和root,默认shell为 /bin/csh,注

   释信息为"Gentoo Distribution" 

   解答:useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo 

2、创建下面的用户、组和组成员关系
 
   名字为admins的组 

   用户natasha,使用admins作为附属组
 
   用户harry,也使用admins作为附属组 

   用户sarah,不可交互登录系统,且不是admins的成员, 

   natasha,harry,sarah密码都是centos

   解答:groupadd admins

   useradd -G admins natasha;useradd -G admins harry

   ;useradd -s /sbin/nologin sarah;echo "centos"|passwd --

   stdin natasha;echo "centos"|passwd --stdin sarah;echo 

  "centos"|passwd --stdin harry;


3、删除wang的家目录,恢复之(权限,所有者组,数据)