用户、用户组及权限管理

用户:UID, /etc/passwd
用户组:GID, /etc/group
影子口令:
用户: /etc/shadow
用户组: /etc/gshadow

用户分类:

  • 管理员:0(UID)
  • 普通用户:1-65535
  • 系统用户:1-499
  • 一般用户:500-60000

用户组类别:

  • 管理员组
    普通组:
    • 系统组和一般组

用户组类别也可以这样分类:

  • 私有组:创建用户时,如果没有为指定所属的组,系统会自动为其创建一个与用户名同名的组
  • 基本组:用户的默认组
  • 附加组,额外组:默认组以外的其它组

用户管理:

useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage

组管理:

groupadd,groupdel,groupmod,gpasswd

权限管理:

chown,chgrp,chmod,umask

权限

进程的安全上下文

进程是以用户的身份运行的,当进程访问文件是,先检查发起进程的用户和用户所属的组,在检查文件的的属主和属组,如果文件的属组就是发起进程的用户则引用前三位的权限,如果文件的属组和发起进程的用户的属组相同则应用中三位的权限,都不是的话及应用右三位的权限

文件
r:可读,可以使用类似cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x:可执行,eXacutable,可以命令提示符下当作命令提交给内核运行
目录

r:可以对此目录执行ls以列出的所有文件
w:可以在此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息


useradd命令添加用户

选项和参数说明:

  • -u:指定用户的UID
  • -s:指定用户的shell (系统可支持的shell在/etc/shells 下)
  • -r:创建一个系统用户(UID范围centos6为1-499,centos7为1-999可在/etc/login.defs中查看)
  • -c:关于登录时的简短描述 后跟描述的字符串
  • -d:自定义用户的家目录 后跟家目录路径
  • -e:用户账户将被禁用的期限格式为 YYYY-MM-DD
  • -f:表示过期后彻底禁用的天数 0表示马上禁止 -1表示禁用这个功能
  • -G[GROUP1],[GROUP2],… : 添加用户的附加组多个组用“,”隔开
  • -M:不创建用户的家目录 默认复制/etc/skel/目录下的文件到/home/USERNAME/下作为USERNAME的家目录 都是隐藏文件
  • -N;不创建同名的私有组
  • 修改创建新用户的默认值:(D是default) 命令修改只对当前shell有效
    • useradd -D [选项],后面如果跟选项,表示查看新创建的用户值

练习:1、添加用户

[root@localhost ~]# adduser shitou            #添加用户
[root@localhost ~]# ls /home/                 #查看家目录
shitou  test
[root@localhost ~]# id shitou                 #显示用户的id和组id
uid=1001(shitou) gid=1001(shitou) groups=1001(shitou)
[root@localhost ~]# cat /etc/passwd | grep shitou
shitou:x:1001:1001::/home/shitou:/bin/bash
[root@localhost ~]# cat /etc/group | grep shitou
shitou:x:1001:

[root@localhost ~]# adduser -M liming         #添加用户不带家目录
[root@localhost ~]# ls /home/
shitou  test

[root@localhost ~]# adduser -g shitou liu     #给指定组添加用户
[root@localhost ~]# id liu
uid=1003(liu) gid=1001(shitou) groups=1001(shitou)

[root@localhost ~]# useradd li                #添加用户,给用户添加密码
[root@localhost ~]# passwd li
Changing password for user li.
密码******

   2、批量添加用户

#!/bin/bash            #批量添加用户
#

declare -i sum=0
for user in `cat /root/userlist.txt`;do
  id $user >/dev/null 2>&1
    if [ $? -eq 0 ];then
      echo "the user $user is exist."
    else
      useradd $user
      echo $user"@#$" | passwd --stdin $user &> /dev/null
      let sum+=1
    fi
done
  echo "$sum sucessed."

usermod命令,用于修改用户信息

  • -u:修改UID
  • -g:修改用户的基本组
  • -d:修改用户的家目录 原来的家目录文件不会转移至新目录 要想移动要与参数 -m 一起使用
  • -G:修改用户的附加组原来的附加组会被删除 要想追加附加组使用参数 -a
  • -c:修改注释信息
  • -e:修改过期日期
  • -f:修改过期后可使用的天数

[root@localhost shell]# usermod -a -G 1001 liu           #给用户添加附加组
[root@localhost shell]# id liu
uid=1003(liu) gid=1003(liu) groups=1003(liu),1001(shitou)

chmod更改文件权限

chmod mode file ,...

  • --reference=/path/to/somefile file,...
  • -R:修改目录及内部文件的属主
  • chmod 用户类别+|-mode file,...

passwd用户密码管理命令

参数

  • -k, --keep-tokens keep non-expired authentication tokens用户过期后仍能使用
  • -d, --delete delete the password for the named account (root only)删除用户密码,仅能以root用户操作
  • -l, --lock lock the password for the named account (root only)锁定用户无权更改密码,不可更
  • -u, --unlock unlock the password for the named account (root only)解除用户无权更改密码
  • -e, --expire expire the password for the named account (root only)
  • -f, --force force operation
  • -x, --maximum=DAYS maximum password lifetime (root only)
  • -n, --minimum=DAYS minimum password lifetime (root only)
  • -w, --warning=DAYS number of days warning users receives before password expiration (root only)
  • -i, --inactive=DAYS number of days after password expiration when an account becomes disabled (root only)
  • -S, --status report password status on the named account (root only)
  • --stdin read new tokens from stdin (root only)

chage用户密码有效期管理

  • -d最近一次的修改时间
  • -E过期时间,chage -E -1 username让用户永久有效
  • -I非活动时间
  • -m最短使用期限
  • -M最长使用期限
  • -W警告时间

pwck命令检查用户密码文件的完整性

grpck命令检查用户组密码文件的完整性

groupadd添加用户组

主要参数

  • -g gid:指定组ID号
  • -o:允许组ID号,不必惟一
  • -r:加入组ID号,低于499系统账号
  • -f:加入已经有的组时,发展程序退出

groupdel删除用户组

groupmod修改用户组信息

  • -g修改组id
  • -n修改组名

gpasswd用户组密码设置

chown改变文件所有者和组

  • -R:修改目录及内部文件的属主
    chown --reference=/path/to/somefile file,...(属主属组一起改为somefile文件一样的拥有者和组)
    也可以使用 chown username:grpname

chgrp与chown相似

su用户切换命令

参数说明

  • -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
  • -l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
  • -m, -p ,–preserve-environment:执行su时不改变环境变数。

特殊权限SUID,SGID、Sticky

  • SUID:运行程序时,相应进程的属主是程序文件自身的属主,而并非是启动者的属主
  • SGID:运行程序时,相应进程的属组是程序文件自身的属组,而并非是启动者所属的基本组
发布了38 篇原创文章 · 获赞 14 · 访问量 6397
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章