yesn 发表于 2019-2-17 12:49:27

​linux用户管理

  和用户组相关的一些文件:

  /etc/passwd root:x:0:0:root:/root:/bin/bash
  用户名:x:uid:gid:描述:HOME:shell
  /etc/shadow   root:$1$MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:::
  /etc/grouproot:x:0:root
  系统约定:
  uid: 0   特权用户
  uid: 1~499 系统用户
  uid: 500+普通用户
  用户组:
  # groupadd hr
  # groupadd sale
  # groupadd it
  # groupadd net01 -g 2000添加组net01,并指定gid 2000
  # groupdel net01删除组net01
  # grep 'net01' /etc/group查看/etc/group中组net01信息
  用户:
  # useradd user01
  # grep 'user01' /etc/passwd
  user01:x:503:506::/home/user01:/bin/bash
  #
  # grep 'user01' /etc/shadow
  user01:!!:15638:0:99999:7:::
  # grep 'user01' /etc/group
  user01:x:506:
  # id user01
  uid=503(user01) gid=506(user01) groups=506(user01)
  # ll /home/
  总计 16
  drwx------ 3 alicealice4096 10-24 16:23 alice
  drwx------ 3 jack   jack   4096 10-24 09:48 jack
  drwx------ 3 robinrobin4096 10-25 10:04 robin
  drwx------ 3 user01 user01 4096 10-25 14:09 user01
  #
  # userdel user01//删除用户user01,但不删除用户家目录
  # ll /home/
  总计 16
  drwx------ 3 alice alice 4096 10-24 16:23 alice
  drwx------ 3 jackjack4096 10-24 09:48 jack
  drwx------ 3 robin robin 4096 10-25 10:04 robin
  drwx------ 3   503   506 4096 10-25 14:09 user01
  # useradd user01
  # useradd user02 -u 503//创建用户usr02,指定uid
  # useradd user03 -d /aaa//创建用户user03 指定家目录
  # useradd user04 -M//创建用户user04,不创建家目录
  # useradd user05 -s /sbin/nologin //创建用户并指定shell
  # useradd user06 -g hr//创建用户,指定主组
  # useradd user07 -G sale//创建用户,指定附加组
  # useradd user08 -e 2013-04-01//指定过期时间
  # useradd user10 -u 4000 -s /sbin/nologin
  注意:gpasswd将用户添加到组或从组中删除,只针对已存在的用户
  # gpasswd -a user07 it//将某个用户加入到某个组
  # gpasswd -M user02,user03,user04 it//将多个用户加入到it组
  # grep 'it' /etc/group//查看it组中的成员
  it:x:505:user02,user03,user04
  # gpasswd -d user07 it//删除用户usr07从it组
  ===================================================================
  小知识:修改用户的信息
  # useradd user10
  # grep 'user10' /etc/passwd
  user10:x:509:509::/home/user10:/bin/bash
  # usermod -u 2000 user10//修改用户uid
  # usermod -s /sbin/nologin user10//修改用户shell
  # useradd user1000
  # passwd user1000
  # grep 'user1000' /etc/shadow
  user1000:$1$Hw2wCJoe$FU91eSBsBx1W0CGdIhTwh/:15775:0:99999:7:::
  ==密码锁定,解锁==
  # usermod -L user1000
  # grep 'user1000' /etc/shadow
  user1000:!$1$Hw2wCJoe$FU91eSBsBx1W0CGdIhTwh/:15775:0:99999:7:::
  登录测试
  # usermod -U user1000
  # grep 'user1000' /etc/shadow
  user1000:$1$Hw2wCJoe$FU91eSBsBx1W0CGdIhTwh/:15775:0:99999:7:::
  登录测试
  ==账号过期==
  # date
  2013年 03月 11日 星期一 15:36:19 CST
  # usermod -e 2013-02-11 user1000
  # grep 'user1000' /etc/shadow
  user1000:$1$Hw2wCJoe$FU91eSBsBx1W0CGdIhTwh/:15775:0:99999:7::15747:
  登录测试
  useradd 参考的文件
  1. /etc/login.defs
  2. /etc/default/useradd# useradd -D
  3. /etc/skel/* 用户的初始配置文件
  ===================================================================
  # useradd user200 -u 3000 -s /sbin/nologin
  ====文件权限====
  rw-r--r--root rootinstall.log
  权限对象:
  属主:u
  属组:g
  其他人: o
  所有人:a
  权限类型:
  读:r4
  写:w2
  执行: x1
  ===设置权限
  1. 更改文件的属主、属组
  chown:
  # chown alice.hr file1 //改属主、属组
  # chown alice    file1 //只改属主
  # chown      .hr file1//只改属组
  chgrp:
  # chgrp it file1//改文件属组
  # chgrp -R it dir1//改文件属组
  
  2. 更改权限
  a. 使用字符
  对象赋值符权限类型
  u+r
  chmod g-w
  o=x
  a
  # chmod u+x file1//属主加执行
  # chmod a=rwx file1//所有人等于读写执行
  # chmod a=- file1//所有人没有权限
  # chmod ug=rw,o=r file1//属主属组等于读写,其他人只读
  # ll file1//以长模式方式查看文件权限
  -rw-rw-r-- 1 alice it 17 10-25 16:45 file1 //显示的结果
  b. 数字
  # chmod 644 file1
  # ll file1
  -rw-r--r-- 1 alice it 17 10-25 16:45 file1
  =================================================================
  读、写、执行 测试
  # mkdir /home/test
  # touch /home/test/file1
  # touch /home/test/file2
  # ll -d /home/test/
  drwxr-xr-x 2 root root 4096 10-26 10:44 /home/test/
  # chmod o=- /home/test/
  # ll -d /home/test/
  drwxr-x--- 2 root root 4096 10-26 10:44 /home/test/
  =================================================================
  # groupadd up01
  # useradd user1000 -G up01
  # useradd user2000 -G up01
  # groupadd up01
  # useradd user1000 -G up01
  # useradd user2000 -G up01
  #
  # mkdir /home/up01
  # chgrp up01 /home/up01/
  # chmod 770 /home/up01/
  # ll -d /home/up01/
  drwxrwx--- 2 root up01 4096 10-26 11:41 /home/up01/
  特殊权限:
  suid4
  sgid2
  sticky1
  umask:文件、目录创建后的默认权限是由umask决定的
  root: 文件 644umask: 0022
  目录 755
  普通用户:文件 664umask: 0002
  目录 775
  # umask -S
  u=rwx,g=rx,o=rx
  # umask //查看当前用户的umask权限
  0022
  # umask 000//设置umask权限
  # umask
  0000
  # touch file8//创建file8文件
  # mkdir dir8//创建目录
  # ll -d dir8 file8//查看文件目录权限
  drwxrwxrwx 2 root root 4096 10-26 14:10 dir8
  -rw-rw-rw- 1 root root    0 10-26 14:10 file8
  # umask 222
  # umask
  0222
  ==============================================================
  小知识:
  # umask 077; touch file60//当前shell生效
  # (umask 077; touch file70)//()表示在子shell生效
  # ll file70
  -rw------- 1 root root 0 10-26 14:31 file70
  #
  # umask
  0022
  ==============================================================
  ACL: UGO权限的扩展
  UGO传统权限:只能一个用户,一个组和其他人
  # touch /home/test.txt
  # ll /home/test.txt
  -rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
  # getfacl /home/test.txt
  # setfacl -m u:alice:rw /home/test.txt //增加用户alice权限
  # setfacl -m u:jack:- /home/test.txt   //增加用户jack权限
  查看:
  # ll /home/test.txt
  -rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt
  # getfacl /home/test.txt
  # setfacl -m g:hr:r /home/test.txt
  # setfacl -x g:hr /home/test.txt//删除组hr的权限
  # setfacl -b /home/test.txt //删除所有acl权限
  man setfacl
  /EXAMPLES
  ACL: 继承(默认)
  # mkdir -p /home/dir100/aaa
  # setfacl -m d:u:jack:rwx /home/dir100
  # rpm -ivh notecase-1.9.8-1.fc6.i386.rpm
  # rpm -ivh ntfs-3g-2010.3.6-1.el5.i386.rpm
  永中office:
  # tar xvf EIOffice_Personal_Lin-v2009sp1.tar.gz
  # cd EIOffice_Personal_Lin
  # sh setup.sh
  ==========
  设置文件属性(权限),针对所有用户,包括root
  # lsattr fil100.txt file200.txt
  ------------- fil100.txt
  ------------- file200.txt
  # chattr +a fil100.txt
  # chattr +i file200.txt
  # lsattr fil100.txt file200.txt
  -----a------- fil100.txt
  ----i-------- file200.txt
  # cat fil100.txt file200.txt
  1111
  222
  # rm -rf fil100.txt file200.txt
  rm: 无法删除 “fil100.txt”: 不允许的操作
  rm: 无法删除 “file200.txt”: 不允许的操作
  # echo 111 >> fil100.txt
  # cat fil100.txt
  1111
  111
  # echo 111 >> file200.txt
  bash: file200.txt: 权限不够
  # chattr -i file200.txt
  # lsattr file200.txt
  ------------- file200.txt



页: [1]
查看完整版本: ​linux用户管理