Linux账户与权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.查看权限

(1)ls -l 文件 //查看文件权限


ls -l /etc/hosts
-rw-r--r--. 1 root root 158 Jun 12 2010 /etc/hosts

-:文件的类型(-文件、d目录、l链接文件、b块设备文件、c字符设备)
rw-:文件所有者的权限
r - -:文件所有组的权限
r - -:其它用户的权限
1:表示文件硬链接数量
root root:所有者、所属组
158:大小(k)
Jun 12 2010:创建时间或修改时间
(2)ls -ld  //目录查看目录权限


ls -ld /etc/
drwxr-xr-x. 92 root root 4096 Jun 14 14:20 /etc

d:表示它是一个目录
rwx:目录所有者的权限
r-x:目录所有组的权限
r-x:其他用户的权限
92:该目录下的子目录数量
root root:目录的属主和属组
4096:目录的大小(k)
Jun 14 14:20:目录创建的时间或修改时间

2.权限详解

(1)文件

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

(2)目录

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

3.设置权限

 chmod [ -R ] 文件/目录

选项

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

例:
chmod -R 750 /hiahia/ //设置/hiahia/目录为750,并且目录下的子目录和文件也应用权限
(1)方式一
u:所有者
g:所有组
o:其他用户
a:所有用户
+、-、=

chmod u-w /hiahia/ //设置所有者对/hiahia/目录的写入权限
chmod g=rwx /hiahia/ //设置所有组对/hiahia/目录拥有所有权限
chmod o+w /hiahia/ //设置其他用户对/hiahia/目录增加写入权限
chmod a=rx /hiahia/ //设置所有用户对/hiahia/目录拥有读取、执行权限
(2)方式二
以三个8进制的数表示,第一位表示所有者的权限、第二位表示所有组的权限、第三位表示其他用户的权限
r(4)、w(2)、x(1)

chmod 750 /hiahia/ //设置所有者对该目录拥有完全权限、所有组队对目录拥有读取和执行权限、其他用户无权限
chmod 474 /hiahia/ //设置所有者对该目录拥有写入权限、所有组对目录拥有完全权限、其他用户对目录拥有写入权限

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

以上是关于Linux账户与权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 用户密码与安全策略

Linux用户及用户组的管理

linux 用户权限管理

详解Linux账户和权限管理

linux账户权限和特殊权限管理

Linux基本命令——用户账户管理