linux基础03-用户及权限

Posted mountain2011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础03-用户及权限相关的知识,希望对你有一定的参考价值。

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

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

0 000 ---:无权限
1 001 --x: 执行
2 010 -w-: 写
3 011 -wx: 写和执行
4 100 r--: 只读
5 101 r-x: 读和执行
6 110 rw-: 读写
7 111 rwx: 读写执行

(3)
用户:UID, /etc/passwd //存储每个用户的ID号,密码(不显示,安全起见,会参照到影子口令)等。
组:GID, /etc/group //存储每个组的ID号,密码等。

影子口令的位置(用户和组的密码):
用户:/etc/shadow
组:/etc/gshadow

(4)用户类别(ID号的范围):
管理员:0
普通用户: 1-65535
系统用户:1-499
一般用户:500-60000

用户组类别:
管理员组:
普通组:
系统组:
一般组:

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

(5)
/etc/passwd 字段说明:
account: 登录名
password: 密码
UID:
GID:基本组ID
comment: 注释
HOME DIR:家目录
SHELL:用户的默认shell

/etc/shadow 字段说明:
account: 登录名
encrypted password: 加密的密码

(6)
加密方法:
对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)
单向加密,散列加密:提取数据特征码,常用于数据完整性校验
1、雪崩效应
2、定长输出
MD5:Message Digest, 128位定长输出
SHA1:Secure Hash Algorithm, 160位定长输出

(7)添加用户和组:
ls -l $(which useradd) //列出useradd
useradd USERNAME
groupadd GRPNAME //可以查看/etc/group查看

查看文件类型:file 某个文件
查看默认追加用户的规则文件: cat /etc/default/useradd

用户管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

组管理:
groupadd, groupdel, groupmod, gpasswd

权限管理:
chown, chgrp, chmod, umask

(8)与用户和组有关的文件的字段含义。
/etc/passwd: (去该文件,查看用户信息)
用户名:密码:UID:GID:注释:家目录:默认SHELL

/etc/group(去该文件查看附加组信息):
组名:密码:GID:以此组为其附加组的用户列表

/etc/shadow:
用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间:

(9)用户管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

useradd [options] USERNAME
-u UID //手动指定用户ID。
-g GID //(指定基本组)
-G GID,... //(指定附加组,多个时以逗号隔开。)
-c "COMMENT"
-d /path/to/directory //指定家目录,默认为/home/用户名
-s SHELL 指定该用户使用的shell路径(例:/bin/bash or tcsh or csh),
-m -k //使用-k -m选项时,会把 /etc/skel中的bash配置文件复制到用户的家目录。
-M //强制不给用户创建家目录,即使配置文件login.defs定义给用户创建家目录。
-r: 添加系统用户

•/etc/shells:指定了当前系统可用的安全shell

•查看当前系统的shell.
$SHELL 例:echo $SHELL

•创建用户的配置信息文件(包含:密码,家目录等信息)
/etc/login.defs

•环境变量:
PATH
HISTSIZE
SHELL
例:$ PATH

(10)
userdel:
userdel [option] USERNAME
//默认只删除用户,不删除家目录
-r: 同时删除用户的家目录

id:查看用户的帐号属性信息
-u //查看用户id号
-g
-G
-n //与其它选项联合,显示名称不显示id号。
例:
id -u user1
id -g user1
id -G user1
id -G
id -u -n user1
id -g -n user1
id -Gn


•finger: 查看用户帐号信息
finger USERNAME


(11)
修改用户帐号属性:
usermod
-u UID //修改用户id
-g GID //修改基本组
-a -G GID:不使用-a选项,会覆盖此前的附加组;
使用-a选项,添加新的附加组。
-c //注释信息
-d -m:两个参数一般要连用,再保证更改新的家目录时,
把原来家目录中的配置,复制到新家目录中。
-s
-l
-L:锁定帐号
-U:解锁帐号

(12)
chsh: 修改用户的默认shell
例:chsh user01

(13)
chfn:修改用户注释信息


(14)密码管理:
普通用户只能通过passwd,修改自己来的密码。

passwd [USERNAME]
--stdin //接收用户输入
-l //锁定用户账号
-u //解锁用户账号
-d: //删除用户密码

•pwck:检查用户帐号完整性

例:
ech0 "mypasswd" | passwd --stdin user01 //避免让用户手动输入密码

(15)组管理
创建组:groupadd
groupadd
-g GID //指定组id,默认为500以后,从上一个组id后续。
-r:添加为系统组

(16)
groupmod
-g GID //修改组id
-n GRPNAME
(17)
groupdel //删除组

(18)
gpasswd:为组设定密码

(19)切换到新组
newgrp GRPNAME <--> exit
例:
newgrp mygroup


例:
1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;
# groupadd -g 3003 distro
# groupadd linux
# useradd -u 2002 -g distro -G linux mandriva
2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;
# useradd -c "Fedora Community" -s /bin/tcsh fedora
3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;
# usermod -u 4004 -g linux -G distro,fedora mandriva
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;
# passwd -n 2 -x 50 fedora

5、将mandriva的默认shell改为/bin/bash;
usermod -s /bin/bash mandirva
6、添加系统用户hbase,且不允许其登录系统;
# useradd -r -s /sbin/nologin hbase

(20)修改用户密码过期信息
chage
-d: 最近一次的修改时间
-E: 过期时间
-I:非活动时间
-m: 最短使用期限
-M: 最长使用期限
-W: 警告时间

以上是关于linux基础03-用户及权限的主要内容,如果未能解决你的问题,请参考以下文章

10-Linux基础入门-文件和目录的属性及权限之用户与组和时间戳基础

linux基础-第七单元 用户群组及权限的深入讨论

Linux系统用户权限管及目录文件的管理(基础详解,操作演示,通俗易懂)

Linux基础03

Linux基础2-4 基础权限练习

Linux基础2-4 基础权限练习