GUN/LINUX 用户和组 文件权限管理

任何文件都有 r-w-x 权限

①普通文件

r权限代表用户可以用cat ,less,more,tail….等命令查看其内容

w权限 代表可以编辑里面的内容增加,修改,删除 里面的内容

x 权限 表示可以提供给内核然后内核执行它

②目录

r :用户可以用LS命令列出目录中的内容

w:可以在目录中创建文件或者目录 能不能修改或者删除还要看文件的权限

x :可以用cd 命令进入目录 或者ls –l 命令查看目录中文件的详细信息

(一般来讲目录都具有x权限,否则用户无法操作目录;文件不具备x权限)

rwx:

r-- :只读

r-x :读执行

--- :无权限

二进制 000 ---:无权限 0 八进制表示

001 --x:执行 1

010 -w-:写 2

011 -wx:写执行 3

100 r--:只读 4

101 r-x:读执行 5

110 rw-:读写 6

111 rwx:读写执行 7

用户: UID 计算机识别用户的标识 数字

组: GID

解析:名称解析 根据/etc/passwd 为数据库 当用户登录之后计算机自动查找文件 将用户名对应的UID找到

并用UID 来操作

/etc/passwd 为用户的信息库 包括用户名 密码 默认使用的登录shell

/etc/shadow 影子口令 是用户的密码真正的存放地

/etc/gshadow 组的密码存放地

用户的类别:总体上2个大类别

管理员 root : UID 永远是0

普通用户: UID 1-65535

---系统用户 1-500

---一般用户 500-60000

系统用户:主要是运行后台进程 不允许登录系统的

用户组: 管理员组:

普通组:

系统组:

一般组:

用户组: 基本组:默认组

私有组:创建用户的时候,如果没有为其指定所属组,系统创建一个与账户名相同的组

附加组:默认组以为的其他组

用户发起进程 然后进程去打开文件 创建文件或者执行程序 那么进程的权限就是发起者的权限

也就是一个进程对文件的操作就是要看发起者与文件的权限匹配到哪个执行组里面那么就以哪个

相应的权限来执行

/etc/passwd 有七个字段组成 :

account:用户名

passwd:密码占位符

UID:

GID:

comment:用户的注释信息

home:用户家目录

shell:用户默认使用的shell

查看一个系统下的合法shell : cat /etc/shells

系统真正存放密码的文件: /etc/shadow

密码加密方式: ① 对称加密 加密和解密是同一个密码

② 公钥加密 密码成对出现 公钥加密 私钥解密 反之亦然

密钥长 安全 速度慢 比 对称加密 速度快3个数量级 主要用来密钥交换

③ 单向加密 或者散列加密或者指纹加密 只能加密不能解密 主要用来提取数据特征码 长用来测试数据的完整性校验

特点:a.雪崩效应 或者 蝴蝶效应 初始条件的微笑改变将会引起结果的巨大变化

b.定长输出

常用的有: MD5 128位的定长输出 麻省理工学院

SHA1 160位定长输出

SHA256 256位定长输出

SHA512 512位定长输出

添加用户:USERADD USERNAME

添加密码:PASSWD USERNAME

添加一个用户有默认的一些属性:/etc/default/里面的useradd 文件中

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

组文件: /etc/group cat /etc/group

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin,adm

adm:x:4:adm,daemon

tty:x:5:

disk:x:6:

lp:x:7:daemon

mem:x:8:

kmem:x:9:

wheel:x:10:

mail:x:12:mail,po 用冒号分开 依次为 组名 组密码 UID 以这个组为基本组的用户列表

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

USERADD [OPTIONS] USERNAME

-u uid

-g gid 基本用户的基本组指定的组必须首先存在

-G ,,,,,指定用户的附加组 可以有多个

-c “COMMENT”注释信息

-d path to directory 用户家目录

-s 指定用户默认使用的shell的路径 最好是etc/shells 里面的shell

-m -k 强行指定创建家目录 并把/etc/skel目录中的有关shell的环境设置文件 一并拷贝到家目录里面

-M 不为用户创建家目录

-r 添加一个id号1-499的系统账户

/etc/login.defs 有关账户的默认配置信息文件

#

# Please note that the parameters in this configuration file control the

# behavior of the tools from the shadow-utils component. None of these

# tools uses the PAM mechanism, and the utilities that use PAM (such as the

# passwd command) should therefore be configured elsewhere. Refer to

# /etc/pam.d/system-auth for more information.

#

# *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 99999

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_MAX 60000

#

# 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 SHA512 to encrypt password.

ENCRYPT_METHOD SHA512

userdel [options] USERNAME

-r 删除账户的同时删除用户的家目录

usermod [options] USERNAME

-u

-g

-G -a 不使用 -a 会覆盖之前的附加组

-c

-d -m 为用户指定新的家目录 并把之前家目录里面的文件移动到新的家目录之中去

-s 修改用户的默认shell

-l 修改用户的用户名

-L 锁定账户

-U 解锁账户

id 命令 查看用户的id信息 id [options] USERNAME

-u USERNAME 显示指定用户的ID

-g USERNAME 显示指定用户的基本组ID

-G USERNAME 显示指定用户的所有组的ID

-n USERNAME 显示用户名或组名

finger USERNAME 查看用户的相关帐号信息

chsh USERNAME 修改用户的默认shell

chfn USERNAME 修改用户的注释信息

密码管理 PASSWD 只有管理员可以修改其他用户的密码 其他用户只能修改自己的密码

PASSWD USERNAME

--stdin

-l 锁定用户账户

-u 解锁用户

-d 删除用户密码

pwck USERNAME 检查用户账户的完整性

组管理 groupadd 添加一个系统组

-g 指定组id

-r 指定一个系统组

groupmod

-g GRPID

-n GRPNAME

groupdel

删除一个组

groupwd 为组设定一个密码 当一个用户临时切换基本组的时候需要的密码,前提是这个用户和组

没有任何的关联,比如这个组是用户的附加组 那么切换的时候就不需要密码

newgrp 切换用户到另一个组 推出EXIT

chage 修改用户的密码文件

chage [options] USERNAME

-d :最后一次密码修改时间

-E: 过期时间

-I 非活动时间

-m MINDAYS

-M MAXDAYS

-W warndays

-l list Options