文件权限
r w x
文件时的权限介绍
r 可读 可以使用 cat。less等命令
w 可写 可以编辑,删除此文件
x 可执行 可以命令行模式下提交给内核运行此命令
当时目录时
r 可以使用ls列出目录的文件
w 可以在此目录中创建文件
x 可以cd切换进目录,也可以ls -l 查看里面文件的详细内容
权限对应的8进制
0 000 - - - 无权限
1 001 - - x 执行
2 010 - w - 写
3 011 - w x 写执行
4 100 r - - 读
5 101 r - x 读执行
6 110 r w - 读写
7 111 r w x 读写执行
用户 UID /etc/passwd。 密码为x x x x
组。GID /etc/group。
影子口令
用户 /etc/shadow 密码在里面
组 /etc/gshadow. 组也有密码的
用户类型
管理员 管理员是 uid = 0
普通用户 uid 1- 65535
系统用户,1-499
一般用户。500-60000
用户组
管理员组
普通组
系统组
一般组
用户组类别
/etc/passwd
用户名:密码:UID:GID:备注:家目录:默认shell
/etc/shadow
用户名:密码:最后一次修改密码时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间
用户管理
useradd, userdel, usermod, passwd, chsh, chfn, id, chage
useradd 解释
-u uid
-g gid
-G 附加组
-c 备注
-d 指定用户家目录
-s. 指定shell
-r 创建系统用户
useradd -M user_name 创建一个没有家目录的用户
创建用户时默认的功能选项在
/etc/login.defs
密码最大使用天数,普通用户的uid 最大值与最小值,用户组gid的最大值与最小值,是否创建家目录 ... ...
系统变量
PATH,HISTSIZE,SHELL
/etc/shell 指定了当前系统可以使用的安全的SHELL
userdel [option] name 删除用户
id: 查看用户的账号属性信息
-u 输出用户有效的用户ID
-g 输出用户有效的用户组ID
-G 输出用户有效的附加用户组ID
-n 以替代数字模式展示用户信息(id -gn 输出的是 组名,组名替代了组ID)
finger 查看用户信息
finger user_name
Login: tom Name:
Directory: /home/tom Shell: /bin/bash
Last login 四 3月 28 00:36 (CST) on pts/1
No mail. No Plan.userdel xxxx 删除用户
userdel tom 删除tom 但是默认不会删除tom 家目录 /home/tom
userdel -r tom 删除tom并删除 tom家目录
usermod xxx 修改用户的账号属性
-u UID 修改uid
-g GID 修改 gid
-a -U GID 添加附加组,不带-a,会覆盖用户的之前的附加组
-c 修改文件的备注
-d -m 指定用户家目录,并把之前家目录复制到新的目录中
-L 锁定用户
-U 解锁用户
chsh (change shell) 修改用户的登录shell
chfn change finger 修改用户的属性信息
修改密码(系统默认空密码禁止登录)
passwd
--stdin 标准化输入、
-l 锁定用户
-u 解锁用户
-d 删除用户密码
pwck 检查用户完整性
gruopadd
-g 指定GID
-r 添加一个系统用户组。1-499 用户为系统用户 ,系统用户不能登录系统,并且没有家目录
groupmod
-g 修改用户组ID
-n 修改名字
groupdel 删除组
newgrp 切换登录到一个新的组。 登录后退出 exit
#############
权限管理
r w x
用户类型
U 属主
G 属组
O 其他
chown username file1 file2 ... 改变文件的属主
-R 修改目录及目录下文件的属主
--reference
chown --reference /tmp/just_test /tmp/test 把test目录修改与just_test目录的属主相同
chgrp group_name file
-R 修改目录及目录下的文件的属组
--reference
chgrp --reference /tmp/just_test /tmp/test 把test目录修改与just_test 目录的属组相同
chmod mode file 修改目录、文件权限
chmod -R 递归执行
--reference = /tmp/just_test /tmp/test 把test权限改为与just_test一样
修改某类用户的权限,用户类型分为。U(属主)、G(属组)、O(其他) 、A(所有用户)
chmod u=rwx /tmp/a.txt. 修改a.txt的属主的权限
chmod u=rw g=r o=rwx /tmp/a.txt 修改a.txt的属主的权限为读写,组权限读写 , 其他的组读写执行
chmod u+x a.txt 属主添加执行权限
chmod g-x a.txt 属组去掉执行权限
chmod -x a.txt 去掉所有的执行权限
//
openssl passwd -1 -salt '12345678' 生成登录密码
掩码 ,root 用户的掩码是0022。普通用户的掩码是0002
umask
666 文件。 文件-掩码 = 文件的权限
777 目录。 目录-掩码 = 目录的权限
文件默认不能有执行权限,如果得到的结果有执行权限 将加1
########站在用户登录的角度来说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/bashrc-->/etc/profile.d/*.sh
################
管道和重定向
I/O 重定向
>: 覆盖输出
>>: 追加输出
set -C 禁止输出重定向覆盖已存在的文件,
强制覆盖输出 >|
set +C 允许输出重定向覆盖已存在的文件
错误输出从定向
2> : 重定向错误输出
2>>: 追加方式
&>: 重定向标准输出或输出至同一个文件
< :输入重定向
<< :here document
管道:前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3 |......
tee 显示输出,并且保存到文件中。
echo 'hello' | tee /tmp/hello.out
wc -l 查看一个文件的行数
cut -d 分割文本
例如;
统计/usr/bin/目录下的所有的文件个数
ll /usr/bin | wc -l
取出当前系统中所有用户的shell,要求每种shell只显示一次
cut -d':' -f7 /etc/passwd | sort -u
取出/etc/inittab 文件的第6行:
head -6 /etc/inittab | tail -1
取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕是那个,并保存到/tmp/lastuser文件中
tail -9 /etc/passwd | head -1 | tee /tmp/lastuser
显示/etc下目录所有的以la开头的文件,并统计个数
ls -l -d /etc/la* | wc -l
将hello word 写入到/tmp/hi 文件里面