Linux账户与权限管理

一、用户概述

用户分类

(1)超级用户(root):Linux权限最高用户;UID为0
(2)程序用户:用于程序使用,不允许登录系统;UID为1-499
(3)普通用户:用户自创建用户;UID为500外后

二、Linux相关用户文件

1、/etc/passwd(存放Linux用户信息)

 root:x:0:0:root:/root:/bin/bash
 用户名:
 密码占位符:
 UID:
 基本组GID:
 用户别名:
 家目录:

shell(/bin/bash可登录系统、/sbin/nologin不允许登录系统)

2、/etc/shadow(存放Linux用户密码文件)

 root:$WZIQ1:17211:0:99999:7:::
 用户名:
 密码(*当前未设置密码、!!当前不允许登录):
 上次修改密码的天数(1970.1.1开始计算):
 密码最短使用期限(0可随时更改):
 密码最长使用期限(99999密码永不过期):
 提前多少天警告密码过期时间:
 多少天后账户被禁用:
 账户失效时间:
 保留字段

三、用户管理

1.新建用户

 useradd | adduser  [ 选项 ]  用户名

选项

-M:不新建家目录(用户作为程序用户)
-m:新建家目录,缺省值
-s:指定用户的Shell(/bin//bash、/bin/zsh、/bin/csh、/bin/xsh、/sbin/nologin)
        注:/etc/shells文件中存储当前系统所有已支持Shell
-g:指定用户所属的基本组;默认创建于用户同名的基本组
-G:指定用户所属的附加组
-u:指定UID

:默认新建用户,如不加选项则使用初始参数;例:useradd u01 --> /etc/default/useradd(设置家目录、Shell、UID、GID) --> /etc/skel/(拷贝默认用户文件)

useradd -s /sbin/nologin hehe //新建用户hehe,不允许登陆系统
useradd -s /bin/bash -G whell,ftp hehe //新建普通用户hehe,将hehe加入whell、ftp组

2.更改用户

 usermod  [ 选项 ]   用户名

选项

-u:指定UID
-s:指定用户的Shell(/bin//bash、/bin/zsh、/bin/csh、/bin/xsh)


usermod -u 100 nginx //更改用户nginx的UID为100(该UID不能被使用)
usermod -s /bin/bash nginx //更改用户登陆Shell,允许用户nginx登陆系统(passwd nginx必须设置密码)

3.删除用户

 userdel [ -r ] 用户名

选项

-r:删除用户家目录


userdel -r nginx //删除用户nginx,并删除该用户的家目录

四、组概述

组的分类

(1)基本组(私有组):一个用户只可属于一个基本组,一般为与用户名同名的组;GID为500以后
(2)附加组(共有组):一个用户可属于多个附加组;GID为1-499
(3)超级组:Linux下管理员组,只有root用户;GID为0

五、Linux组账号文件

1、/etc/group(组信息文件)

mail:x:12:mail,postfix
组名:
密码占位符:
GID:
成员列表

2、/etc/gshadow(组密码文件)

mail:::mail,postfix
组名:
密码:
组管理者:
成员列表

六、组管理

1.新建组

 groupadd [ -g ] 组名

选项

-g:指定新建组的UID


groupadd -g 700 q //新建GID为700的组,名称为q

2.添加成员

 ①gpasswd -a 用户 组名 //添加一个用户到指定组
 ②gpasswd -M “用户,用户”  组名 //同时添加多个用户到指定组

例①
useradd -s /bin/bash -m haha
gpasswd -a haha q //将用户haha加入到q组
例②
gpasswd -M "u01,u02" hehe //将u01、u02用户加入到hehe组

3.删除成员

 gpasswd -d 用户 组名


gpasswd -d haha q //将用户haha从q组中移除

4.删除组

 groupdel 组名


groupdel q //删除组q

七、查询帐号信息

1.id 用户名    //查询用户的UID、基本组、附加组
2.groups 用户名    //查询用户所属组
3.使用finger查看账户详细信息
(1)mount /dev/cdrom /mnt            //挂载光盘到/mnt目录
(2)rpm -ivh /mnt/Packages/finger-0(table键)  //安装finger软件包
(3)finger 用户名       //查询用户的详细信息
4.users     //查询当前登录用户
5.who       //简单查询Linux系统所有登录用户信息
6.w     //详细查询Linux系统所有登录用户信息
7.pts/0:代表为远程登陆,第一个远程
8.tty1:本地登陆的第一个终端

八、密码管理

1.设置用户密码

 passwd  [ 选项 ]  用户名        //设置用户密码
 echo "密码" | passwd --stdin 用户名         //一般用于脚本

选项

-d:设置用户密码未空,建议不使用该选项
-x:指定密码最长使用时间,默认永久
-n:指定密码最短使用时间,默认为0,任意时间都可更改密码
chage -E "时间" 用户        //设置账号失效时间
chage -l 用户         //查看账号的密码控制信息(如最短、最长密码使用时间等)

注:默认root用户可设置所有用户密码,并不需要该用户原密码;而普通用户只能更改自己的密码(passwd),并且需要原密码

echo "123" | passwd --stdin haha //设置haha用户密码为123

2.锁定用户

 passwd -l 用户

3.解锁用户

 passwd -u 用户

九、权限

r:读取//4
w:写入//2
x:执行//1

1.查看权限

ls -l 文件 //查看文件权限


ls -l /etc/hosts
-rw-r--r--. 1 root root 158 1月 12 2010 /etc/hosts
-:文件的类型(-文件、d目录、l链接文件、b块设备文件、c字符设备)
rw-:文件所有者的权限
r--:文件所有组的权限
r--:其它用户的权限
root root:所有者、所属组

ls -ld  //目录查看目录权限

2.权限详解

(1)文件

r:可查看文件内容,cat、more、head等命令
w:可修改文件内容,vim等
x:可执行该文件,脚本、程序

(2)目录

r:可列表查看目录下内容,ls等命令
w:可在目录下新建、删除文件或目录
x:可进入目录,cd命令

3.设置权限

 chmod [ -R ] 文件/目录

选项

-R:递归设置权限,用于目录


①新建文件/root/a,所有者拥有读取、执行,所有组无权限,其他用户拥有所有权限
touch /root/a
chmod 507 /root/a
②-rw-------
所有者拥有读取、写入权限,所有组无权限、其它用户无权限
③drwxr-xr-- root nginx
所有者root拥有完全权限,所有组nginx拥有执行权限,其它用户拥有读取
nginx-->nginx组:读取、执行
root -->root用户:完全权限

4.设置属主

 chown 用户:组名 文件/目录


ls -l /etc/hosts //查看/etc/hosts文件权限
drwxr-xr-- root nginx
chown heihei /etc/hosts //更改属主为heihei
drwxr-xr-- heihei nginx
ls -l /etc/hosts
drwxr-xr-- root nginx
chown :root /etc/hosts //更改属组为root
drwxr-xr-- root root
ls -l /etc/hosts
drwxr-xr-- root nginx
chown nginx:root /etc/hosts //更改属主和属组
drwxr-xr-- nginx root

猜你喜欢

转载自blog.51cto.com/13770206/2129561