inux下用户和组的管理
一、linux是一个多用户多任务的操作系统
二、为什么要创建多个用户?
1.使每个人对自己的资源进行更好的管理
2.使不同的用户对计算机的资源管理有特殊的权限
3.实现分布式处理(把一个任务分成多个模块,大家同时来完成)
三、用户信息的存放(/etc/passwd)
3类用户: 超级管理员root(用户属性:UID/GID) UID=0 GID=0
服务管理用户,不登录的用户(UID=1---499) GID默认为UID
普通用户:用户自己创建的(UID=500~65535)
在/etc/passwd文件中,每个用户的信息占用一行,内容格式如下:
用户名:密码:UID:GID:用户描述:用户的主目录:登录shell的版本
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
php:x:500:500:php:/home/php:/bin/bash
注意:一个组群可以包含多个用户,反过来一个用户可以属于多个组群。其中一个用户只能有一个主组群,其他的组群叫做这个用户的附属组群。
密码加密之后的信息存放在(/etc/shadow)
用户名:加密之后的密码:从1970-1-1到用户最后一次修改密码的天数:用户可以更改密码的天数:用户必须要修改密码的天数:系统提示用户修改密码的天数:密码过期后几天帐户被禁用:密码过期的具体日期(从1970-1-1开始 的天数):保留
root:$1$oKjiLsfG$F5OeXiRJZdgRTafoaKKWP.:15692:0:99999:7:::
bin:*:15691:0:99999:7:::
php:$1$yk1HbJIa$2kHi3nuQasUWnsxbagm55.:15691:0:99999:7:::
关注(/etc/login.defs)
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail 用户邮箱目录
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 9999 密码的最长有效天数相对于最后修改的日期
PASS_MIN_DAYS 0 密码在多少天之内不许修改
PASS_MIN_LEN 5 用户密码的最小长度
PASS_WARN_AGE 7 在过期多少天之前给出警告
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500 用户起始UID
UID_MAX 60000 用户UID的最大值
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes 是否在创建用户时自动创建用户主目录
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes 是否创建用户时自动创建组
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB yes 密码是否使用MD5加密
查看用户信息(chage -l 用户名)
四、关于组群(group)
关注文件/etc/group:
组名:组群口令(一般为空):GID:所属组的用户
注意:如果是普通用户组话,在组中不显示主组群为该组的用户名,但是显示其附属成员
root:x:0:root
bin:x:1:root,bin,daemon
php:x:500:
php1:x:501:
五、创建和管理用户及组
1.利用图形界面
2.命令完成
[1].创建新用户:useradd|adduser
格式: useradd [参数] 用户名
参数:利用man命令参考
例:创建UID为510,组为php,名字为php3,主目录为/home/php3,打开的shell为/bin/bash 密码为:123456
[2].设置用户口令(禁用和启用用户)
passwd [参数] 用户名
参数: -l (lock)锁定(禁用)相应用户
-u(unlock)解禁一个用户
[3].chage命令:修改口令的参数
chage [参数] 用户名 具体内容自己man一下
chage -l 用户名
管理用户:
[1].修改用户的基本信息(usermod)命令格式同useradd
例:将用户php3的主目录改为/home/php0
usermod -d /home/php0 php3
[2].锁定用户
1。利用passwd命令
例:将php用户锁定 passwd -l php
解锁php: passwd -u php
2.利用usermod禁用解禁用户
usermod -L php
usermod -U php
3.直接修改/etc/shadow直接在用户信息前加*
[3]删除用户userdel
userdel [-r] 用户名
-r:如果不加,只在/etc/passwd中删除用户信息,加上-r将用户信息及主目录一起删除
linux用户与用户、权限管理
用户管理:
1、useradd 创建用户
-c 指定用户描述
-d 指定家目录 默认家目录 /home下同名的目录
-g 指定主组
-G 指定附加组
【注意:一个用户主组只能有一个,而附加组可以有多个】
-s 指定shell程序
特殊:/sbin/nologin --> 不容许登陆系统的用户
-u 指定UID
-M 不创建家目录
2、userdel
-r 带着家目录一块删除
3、usermod - 修改
-c -d -m -g -G -s -u -o(容许UID相同,和-u一起使用)
4、passwd
-l lock
-u unlock
-d 删密码
*echo "密码" | passwd --stdin "用户名"* 一步创建用户名和密码
组管理:
groupadd
-g 修改组ID
-o 容许重复
groupdel 删除组属性
groupmod 修改组属性
-g
-o
-n 修改组名
-p 指定组密码
【注意:如果一个文件输入这个用户的附加组,而你要访问这个文件,别人就可以为这个组设置密码;】
常用文件
/etc/passwd
uname:x:uid:gid:描述:家目录:shell程序
超级用户 - root
系统用户 1-499 1-999 普通用户 500 - 65535 1000-65535
/etc/shadow
uname:uid:密码:各种时间...
。。。
脚本文件
/etc/group
组:组密码:组ID:附加组
/etc/gshadow
。。。
/etc/skel
这个目录下的文件均会被复制到每一个普通用户的家目录中,一般用来做警告;
==============================================================
用户权限:
r w x
读写执行
4 2 1
r 100
w 010
x 001
chmod [a|o|g|u] [+|-] 文件
chown :user10 文件
chown user10: 文件
chown user10:user10 文件
===================================================
acl的授权管理:
通过权限管理,给指定用户添加指定权限;
setfacl -- 添加权限
setfacl -m u:用户名:所添加的权限 文件 //文件一定要是该用户的文件
setfacl -x u:用户名 文件 //取消文件权限
getfacl
查看acl添加的权限
特殊权限:
临时借权限;例如:有A B两个用户分别输入AA组和BB组;A创建了一个用户a.txt,B默认情况下去访问a.txt使用other;但是,我如果想要越权,借用A的权限去访问a.txt,就需要将SUID位置位为1;同时也可以,去借SGID的权限去访问这个文件;
粘粘位作用:授权给一个目录,在该目录下所有用户只能删除自己的文件,别人不能删除自己的文件;--给目录文件授予的;
SUID
chmod u+s 文件 //授予SUID的特殊权限
如果属主权限有 x 显示为 s
如果属主权限没有x 显示为S
【如何借位?】
SGID
chmod g+s 文件 //授予GUID的特殊权限
如果属主权限有 x 显示为 s
如果属主权限没有x 显示为S
【如何借位?】
Sticky
chmod o+t 文件 //授予粘粘位的特殊权限
如果属主权限有 t 显示为 s
如果属主权限没有T 显示为S
【如何借位?】
=============================================
su 授权
/etc/sudoers //在这个文件里面去添加权限即可;
su - / su
sudo
组群的管理
[1].组群的添加:groupadd或addgroup
格式groupadd 组的名称
[2].修改组的属性:groupmod [参数] 组群的名称。
[3].添加/删除组成员
gpasswd [参数] 用户名1,2,... 组名
参数: -a 添加
-d 删除
注意:将用户分组目的是授权文件或文件夹权限时可以同时授予多个用户