用户,组,权限

安全上下文

权限
r,w,x

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

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


r:4
w:2
x:1

三类用户
u:属主
w:属组
o:其他用户

用户:UID,/etc/passwd
组:GID /etc/group

影子口令
用户:/etc/shadow
组:/etc/gshadow

用户类型
管理员:0
普通用户:1-65535
    系统用户:1-499
    一般用户:500-60000

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

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

cat /etc/passwd
用户名,登录密码,uid,gid,注释,家目录,用户默认shell

cat /etc/shadow
登录名,加密密码,

cat /etc/group
 组名,密码站位符,组id,以这个组为附加组的用户列表
加密方法
    对称加密:加密和解密使用同一个密码
    公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)
    单项加密:散列加密,提取数据特征码
cat /etc/shells
指定了当前系统中可用的安装shell

用户管理:
    useradd userdel usermod passwd chsh chfn finger id chage
组管理
    groupadd groupdel groupmod gpasswd
权限管理
    chown chgrp chmod umask

    
    
useradd
        -u UID
        -g GID(基本组)
        -G GID,...  (附加组)
        -c "COMMENT"  指定注释信息
        -d /path/to/somedirectory   指定家目录
        -s shell 环境变量
        -M 创建时不创建家目录
        -r
环境变量:
        PATH
        HISTSIZE
        SHELL
    
    
    
useradd -G mygroup user3
tail -l /etc/passwd
tail /etc/group    
    
#useradd -M user7
#su - user7
-bash-3.2$ pwd
/root    
    
    
    
userdel
        后加用户名,不会删除其家目录
    -r    删除用户的同时删除家目录
    
    
    
id
        -nu 用户的用户名
        -ng 用户组的组名
        -nG 每一个组的组名
    



修改用户账号属性
usermod
    -u UID
    -g GID
    -a -G GID 为用户在原有附加组的情况下,添加附加组。不适用-a会覆盖此前的附加组
    -c
    -d -m;指定新家目录的位置,也要移动此前的文件到新的家目录中
    -s
    -l更改用户名
    -L 锁定账号
    -U 解锁账号
    
    
    
    
finger:用户账号信息
finger username    
chsh:修改用户的默认shell
chfn:修改信息
finger,chsh,chfn这三者互用。





密码管理:
passwd
    --stdin  不用交互使用    
    -l            锁定
    -u            解锁
    -d            删除密码
    
echo '123' |passwd --stdin user3

pwck:检查用户账号完整性

groupadd
    -g GID
    -r 添加一个系统组,系统用户没有家目录
    
    
groupmod
    -g GID
    -n 指定新的组名
    
groupdel

gpasswd 组名   :给组设定密码


newgrp 组名  :登录到新组,然后退出用exit

 

练习:
1 创建用户mandriva,id为2002,基本组distro(组id3003),附加组Linux
# groupadd -g 3003 distro
#groupadd linux
#useradd -u 2002 -g distro -G linux mandriva

2 创建用户fedora,全名Fedora COMMENT,默认shell为tcsh
# useradd -c "Fdora 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


chage
    -d 最近一次修改的时间
    -E 过期时间
    -I 非活动时间
    -m 最短使用期限
    -M 最长使用期限
    -W 警告时间



三类用户
u:属主
w:属组
o:其他用户

chown:改变文件属主(管理员使用此命令)
    -R:修改目录及其内部文件的属主
    --reference=/path/to/somfile file
将/tmp/abc属性改为和/tmp/dfe 属性一致
chown --reference=/tmp/abc /tmp/dfe

chmod :修改文件权限
    -R
    --reference=/path/to/somefile file    
    
修改某类用户或者某些类用户权限,某位或某些位权限
u,g,o,a    + ,—

站在用户登录角度说,SHELL的类型:
登录式shell:
    正常登录某终端登录
    su - username
    su - l username

非登录式shell
    su USERNAME
    图形终端下打开命令窗口
    自动执行shell脚本
    
    
bash的配置文件
全局配置
    /etc/profile, /etc/profile.d/*.sh, /etc/bashrc
个人配置
    ~/.bash_profile, ~/.bashrc
    
profile类的文件:
    设定环境变量
    运行命令或者脚本(一登录)

bashrc类是文件:
    设定本地变量
    定义命令别名

    
登录式shell如何读取配置文件:
/etc/profile--> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何配置文件:
~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh