管道符:cmd1 输出
cmd2 输入
cmd1 | cmd2
如果想将错误信息传给cmd2
cmd1 |& cmd2 或 cmd1 2>&1| cmd2
加上 >
2>
<
&>
就是重定向
<< key
与用户名和组相关的
/etc/passwd
/etc/shadow 放用户口令的
/etc/group
/etc/gshadow
以上可以用cat查看也可以用
getent passwd|shadow|group|gshadow
前提是必须是root尤其是 shadow ,gshadow
上一节课讲到用户账号和组账号可以同名
也就是 UID=GID ,一般用户创建账号时是默认创建一个和他同名的组作为主组,即uid和主组相同
在Linux中默认一个uid=0的号即root ,并且gid=0的也叫root的组
如果把liang号 UID设为0 就可以获得和root一样的权限
准确的说ID为0的就是管理员
我们把用户加到组里面就会继承组的权限
工作中 一般先建一个账号
useradd -s /sbin/nologin -r -d /data/mysql -m -u1234 mysql
-s shell类型 nologin给某个服务用的,一般都是系统账号 -d指定家目录,后面跟指定目录。 -r 一旦加上就不会建家目录,邮箱也不会生成,如果想建家目录加上-m 后面跟指定用户名 -u指定UID如果在多台服务器上建账号不指定UID 系统会随机分配,管理麻烦
usermem
userdel 带-r选项会把邮箱一起删
2文件的权限
read r 读
write w 写
excute x 执行
读文件 要确保文件可读才行 如果是二进制文件读取后会把系统弄乱码 ,
解决办法exit logout 或CTRL+D 或敲命令reset(重置字符)
读写文件一般针对文本说的
执行列外 执行:当程序运行
改所有者 chown wang f1 更改f1的所有者为wang
查组的列表 getent group
改所有组 chgrp rpc f1 更改f1的所有组为rpc
建两个组 #groupadd g1
#groupadd g2
把wang用户加到g1组里 有三种方法
#groupmems -a wang -g g1
#usermod -aG g2 wang 给wang建一个叫g2的附加组 如果没有a 将会把上一个附加组g1覆盖抹去
列如
[root@liang data 21:00:42]#id wang
uid=502(wang) gid=504(wang) groups=504(wang)
[root@liang data 21:08:11]#groupmems -a wang -g g1
[root@liang data 21:16:11]#id wang
uid=502(wa
ng) gid=504(wang) groups=504(wang),501(g1)
[root@liang data 21:16:18]#usermod -aG g2 wang
[root@liang data 21:16:50]#id wang
uid=502(wang) gid=504(wang) groups=504(wang),501(g1),502(g2)
普通账号无法改变UID
列如
[root@liang data 21:19:10]#su wang
[wang@liang data 21:19:25]$ll
total 16
-rw-r–r–. 1 wang root 0 Apr 4 20:53 f1
drwx——. 2 root root 16384 Apr 2 19:54 lost+found
[wang@liang data 21:19:30]$chown mage f1
chown: changing ownership of `f1′: Operation not permitted
可以改变GID 前提是文件是所有者的,并且必须要在这个组里
例如
[wang@liang data 21:20:08]$chgrp g1 f1
[wang@liang data 21:24:17]$ll f1
-rw-r–r–. 1 wang g1 0 Apr 4 20:53 f1
继承的组权限是一样的
相对于普通用户 。
通过这 我们把将要访问f1文件的 人 分成 三类人
第一类 文件的所有者 权限最大
第二类 所加入的 所属于的组 权限相对小
第三类 other 权限最严
如何对三类人 授权
1 chmod change mode
方法 :mode 法
chmod who opt per file chmod跟上对谁操作who 做什么操作opt 针对他授予什么权限per 跟上文件file
who :u g o a(all)
opt : + – =
per :r w x X X特殊权限
chmod u+x,file
chmod u+x,g-w,o= file
例如
[wang@liang data 21:54:06]$ll f1
-rw-r—–. 1 wang g1 0 Apr 4 20:53 f1
[wang@liang data 21:54:35]$chmod u= f1
[wang@liang data 21:54:44]$ll f1
—-r—–. 1 wang g1 0 Apr 4 20:53 f1
普通用户读写执行 有限制
删除文件不是对文件的权限 而是对目录的
方法2: 数字法
u g o
rwx rw- r–
111 110 100
421 42 4
7 6 4
chmod 421 f1
chmod -R 422 dir1 更改dir1下的所有文件的权限为422
umask 取消对应的权限 mask 掩码
设为多少
新建的文件的权限就是666-umask值剩下的数,但是 如果是奇数+1 偶数不变
新建的文件夹的权限是777-umask值剩下的数。
例如
[root@liang data ]#umask 251
[root@liang data ]#mkdir dir2
[root@liang data ]#ll
total 0
drwxrwxrwx. 2 liang liang 27 Apr 5 16:29 dir1
dr-x-w-rw-. 2 root root 6 Apr 5 17:05 dir2
[root@liang data ]#touch f1
[root@liang data ]#ll
total 0
drwxrwxrwx. 2 liang liang 27 Apr 5 16:29 dir1
dr-x-w-rw-. 2 root root 6 Apr 5 17:05 dir2
-r—w-rw-. 1 root root 0 Apr 5 17:05 f1
在Linux中要想存的住就要放在文件里
所以umask值可以存在 .bashrc 中
-p
#umask -p >>.bashrc
-s
#umask -s
u=rwx g=rw o=r
可以直接看到设置的 不用算 我们也可以这样
#umsak u=rwx g=r o=rw 这样设置也可以
文本处理工具 cat
cat [OPTION] …[FILE]
-E:显示行结束符$
-n:对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
tac
竖着反写功能
rev
横着反写
more 相当于空格 用于翻页
less 也用于翻页
head 显示文件的头
head -n2 前两行
head -c12 前12个字符
tail
tail -n2 后两行
tail -f /etc/ss 跟踪/etc/ss 的页面
-F
tailf 相当于tail -f
cut 取列
cut -d: -f 1 取以:为分隔符的第一列
cut -c4-6 取4-6列的字符
paste 将两个文件的内容横着合并 同一行的合到一起
paste f1 f2 把f1和f2横着合并一起
cat f1 f2 把f1和f2 竖着合并一起
paste -s f1 f2 把f1的内容合成一行做成第一行再把f2的内容合成一行作为第二行 ,把两个合成一起显示出来
wc 显示文件内容有几行 多少个字节 多少个单词
一般 ls -l | wc
wc -w file file 中有多少个单词
-c 字节
-m 字符
-L 显示最长的行的字节符
-l 有多少行
sort 取出列 并排序
sort -t: k 1 /etc/passwd 对/etc/passwd 以:为分隔符第1列 的字符 排序
sort -t: k 1 -n /etc/passwd 对 /etc/passwd 以:为分隔符第1列 的数字 排序
sort -t: k 1 -nr /etc/passwd 对/etc/passwd 以:为分隔符第1列 的数字 倒序排序
-n 数字排序 排序后可以跟 | head -n1 取第一行 就是取最大值
-u 把重复的删除留下单个的
-n
-f 忽略大小写
uniq 删除相邻的相同的行
uniq -c 显示几行合并到一起
-u 仅显示不重复的行
-d 仅显示重复的行
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95112