Linux基本命令三

该文章内容包括四部分,分别为
1、用户和用户组
2、sudo命令
3、用户无法登录 passwd文件
4、权限 chmod chown
5、其他命令 su find du 命令

用户和用户组

1.1查看用户命令的目录

[root@JD ~]# ll /usr/sbin/user*
-rwxr-x--- 1 root root 118192 Nov  6  2016 /usr/sbin/useradd
-rwxr-x--- 1 root root  80360 Nov  6  2016 /usr/sbin/userdel
-rwxr-x--- 1 root root 113840 Nov  6  2016 /usr/sbin/usermod
-rwsr-xr-x 1 root root  11296 Apr 13  2017 /usr/sbin/usernetctl

1.2查看用户组命令的目录

[root@JD ~]# ll /usr/sbin/group*
-rwxr-x--- 1 root root 65480 Nov  6  2016 /usr/sbin/groupadd
-rwxr-x--- 1 root root 57016 Nov  6  2016 /usr/sbin/groupdel
-rwxr-x--- 1 root root 57064 Nov  6  2016 /usr/sbin/groupmems
-rwxr-x--- 1 root root 76424 Nov  6  2016 /usr/sbin/groupmod

1.3添加用户

[root@JD ~]# useradd jack

1.4查看用户信息
创建一个普通用户,默认创建这个用户名的用户组jack,且设置这个用户的主组为jack,同时也会在/home下创建家目录
存储用户信息的文件/etc/passwd
存储用户组信息的文件/etc/group
查看一个文件大小用:ll -h
查看文件夹大小:du -sh

[root@JD ~]# id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack)
[root@JD ~]# cd /home
[root@JD home]# ll
total 0
drwx------. 3 centos centos 70 Jun 28  2017 centos
drwx------  2 jack   jack   59 Nov 18 19:43 jack
			所属用户 所属用户组
[root@JD etc]# cd passwd
...........
jack:x:1001:1001::/home/jack:/bin/bash
[root@JD etc]# cat group
.........
jack:x:1001:

1.5删除用户
如果jack该组只有jack用户,当这个用户删除时,组会校验就他自己,会自动删除(不会删除家目录即/hom/jack目录);如果组中还有他用户,不会自动删除

[root@JD /]# userdel jack
查看用户
[root@JD /]# id jack
id: jack: no such user
查看保存用户和用户组的文件
[root@JD /]# cat /etc/passwd | grep jack
[root@JD /]# cat /etc/group | grep jack
查看家目录
[root@JD /]# ll /home/
total 0
drwx------. 3 centos centos 70 Jun 28  2017 centos
drwx------  2   1001   1001 59 Nov 18 19:43 jack
重新创建jack用户
[root@JD /]# useradd jack
#因为家目录不会删除,所以不会重新创建家目录
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
查看用户
[root@JD /]# id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack)

1.6模拟切换用户丢失样式(如果删除家目录.bash*的所有文件,会出现样式丢失情况)

进入家目录
[root@JD /]# cd /home/jack
查看隐藏文件
[root@JD jack]# ll -a
total 12
drwx------  2 jack jack  59 Nov 18 19:43 .
drwxr-xr-x. 4 root root  30 Nov 18 19:43 ..
-rw-r--r--  1 jack jack  18 Apr 11  2018 .bash_logout
-rw-r--r--  1 jack jack 193 Apr 11  2018 .bash_profile
-rw-r--r--  1 jack jack 231 Apr 11  2018 .bashrc
删除bash的隐藏文件
[root@JD jack]# rm -rf .bash*
[root@JD jack]# ll -a
total 0
drwx------  2 jack jack  6 Nov 18 20:06 .
drwxr-xr-x. 4 root root 30 Nov 18 19:43 ..
[root@JD jack]# 
切换用户,会出现样式丢失
[root@JD jack]# su - jack
Last failed login: Tue Nov 12 10:28:24 CST 2019 from 178.62.194.63 on ssh:notty
There were 2 failed login attempts since the last successful login.
-bash-4.2$ ll
total 0
-bash-4.2$ 

1.7修正样式

[root@JD jack]# cp /etc/skel/.* /home/jack/
[root@JD jack]# cp /etc/skel/.* /home/jack/
cp: omitting directory ‘/etc/skel/.’
cp: omitting directory ‘/etc/skel/..’
查看家目录下的文件
[root@JD jack]# ll -a
total 16
drwx------  2 jack jack  79 Nov 18 20:10 .
drwxr-xr-x. 4 root root  30 Nov 18 19:43 ..
-rw-------  1 jack jack   8 Nov 18 20:09 .bash_history
-rw-r--r--  1 root root  18 Nov 18 20:13 .bash_logout
-rw-r--r--  1 root root 193 Nov 18 20:13 .bash_profile
-rw-r--r--  1 root root 231 Nov 18 20:13 .bashrc
修改用户所属的用户和用户组
[root@JD jack]# chown jack:jack .bash*
[root@JD jack]# ll -a
total 16
drwx------  2 jack jack  79 Nov 18 20:10 .
drwxr-xr-x. 4 root root  30 Nov 18 19:43 ..
-rw-------  1 jack jack  42 Nov 18 20:18 .bash_history
-rw-r--r--  1 jack jack  18 Nov 18 20:13 .bash_logout
-rw-r--r--  1 jack jack 193 Nov 18 20:13 .bash_profile
-rw-r--r--  1 jack jack 231 Nov 18 20:13 .bashrc
[root@JD jack]# 
切换目录
[root@JD jack]# su - jack
Last login: Mon Nov 18 20:08:00 CST 2019 on pts/0
样式修正成功
[jack@JD ~]$ 

1.8添加ruoze用户到另外一个组 bigdata

-a|–append ##把用户追加到某些组中,仅与-G选项一起使用
-c|–comment ##修改/etc/passwd文件第五段comment
-d|–home ##修改用户的家目录通常和-m选项一起使用
-e|–expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD
-f|–inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g|–gid ##修改用户的gid,该组一定存在
-G|–groups ##把用户追加到某些组中,仅与-a选项一起使用
-l|–login ##修改用户的登录名称
-L|–lock ##锁定用户的密码
-m|–move-home ##修改用户的家目录通常和-d选项一起使用
-s|–shell ##修改用户的shell
-u|–uid ##修改用户的uid,该uid必须唯一
-U|–unlock ##解锁用户的密码

创建组
[root@JD jack]# groupadd bigdata
查看用户组文件
[root@JD jack]# cat /etc/group | grep bigdata
bigdata:x:1002:
添加jack用户到bigdata组
[root@JD jack]# usermod -a -G bigdata jack
[root@JD jack]# id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack),1002(bigdata)
修改bigdata为jack的主组
	方式一:先修改jack用户组为bigdata,然后再追加jack组
[root@JD jack]# usermod --gid bigdata jack
[root@JD jack]# id jack
uid=1001(jack) gid=1002(bigdata) groups=1002(bigdata)
[root@JD jack]# usermod -a -G jack jack
[root@JD jack]# id jack
uid=1001(jack) gid=1002(bigdata) groups=1002(bigdata),1001(jack)
	方式二:修改用户,指定一个主组和n个附加组(显示的指定全)
[root@JD jack]# usermod -g jack -G bigdata,jack
[root@JD jack]# id jack
uid=1001(jack) gid=1002(bigdata) groups=1002(bigdata),1001(jack)

设置用户密码

[root@JD jack]# passwd jack
Changing password for user jack.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@JD jack]# 

切换用户

su ruoze
su - ruoze:会切换到该用户的家目录,且执行环境变量文件
.bash_profile文件 su ruoze不会执行该文件,su - ruoze 会执行
.bashrc文件 su ruoze会执行该文件,su - ruoze 会执行

普通用户获取root的最大权限

[root@JD jack]# vi /etc/sudoers
root    ALL=(ALL)       ALL
jack    ALL=(root)      NOPASSWD:ALL
[root@JD jack]# cd ~
[root@JD ~]# 
[root@JD ~]# su jack
[jack@JD root]$ ll
ls: cannot open directory .: Permission denied
sudo: ll: command not found
[jack@JD root]$ sudo ls
1.txt  2.txt  3.txt  a  b  shellScripts
[jack@JD root]$ 

/etc/passwd文件(存储用户信息)

jack: x:1001:1002::/home/jack:/bin/bash
只有可执行文件是/bin/bash才能成功切换用户
应用场景:切换不了用户,修改/etc/passwd中对应用户的尾部为/bin/bash
/etc/passwd文件
CDH 很多的组件
hdfs组件 hdfs用户
su - hdfs
对应修改为 /bin/bash

hbase组件 hbase用户
su - hbase
yarn组件 yarn用户

[root@JD ~]# cat /etc/passwd
。。。。。。
jack: x:1001:1002::/home/jack:/bin/bash
修改passwd
[root@JD ~]# vi /etc/passwd
。。。。。
jack: x:1001:1002::/home/jack:/bin/false
切换用户没切换成功
[root@JD ~]# su jack
[root@JD ~]# 
修改文件
[root@JD ~]# vi /etc/passwd
。。。。
jack:x:1001:1002::/home/jack:/sbin/nologin
没切换成功
[root@JD ~]# su jack
This account is currently not available.
[root@JD ~]# 

权限

6.1
错误: Permission denied
chomd -R 777 文件夹/文件路径
chown -R 用户:用户组 文件夹/文件路径

-rw-r–r-- 1 root root 0 Nov 10 23:38 1.txt
drwxr-xr-x 3 root root 14 Nov 10 23:34 b

第一个字母: d文件夹 -文件 l连接
rwx r-x r-x
r:read 4
w:write 2
x:执行 1
-:没有权限 0
rwx:7
wx:3
rx:5
d rwx r-x r-x 3 root root 14 Nov 10 23:34 b
rwx 第一组 7 代表文件或文件夹的用户root,读写执行
r-x 第二组 5 代表文件或文件夹的用户组root,读执行
r-x 第三组 5 代表其他组的所属用户对这个文件或文件夹的权限: 读执行

chmod -R 777 文件夹/文件路径
chown -R 用户:用户组 文件夹/文件路径
777 代表任意的用户用户组 都读写执行 权限

[root@JD ~]# ll
total 0
-rw-r--r-- 1 root root  0 Nov 10 23:38 1.txt
drwxr-xr-x 3 root root 14 Nov 10 23:34 b 

6.2案例

创建文件xxx.log
[root@JD tmp]# echo "qqqq" > xxx.log
-rw-r--r-- 1 root root 5 Nov 18 21:08 xxx.log
切换用户为jack用户
[root@JD tmp]# su - jack
Last login: Mon Nov 18 20:54:38 CST 2019 on pts/0
[jack@JD ~]$ cd /tmp
[jack@JD tmp]$ ll
-rw-r--r-- 1 root root  5 Nov 18 21:08 xxx.log
切换为jack用户,编辑失败,因为jack用户只有读权限
[jack@JD tmp]$ vi xxx.log
5: 'readonly' option is set (add ! to override)

ctrl+x/z 会产生swp文件  ll -a 删除即可 .rz.log.swp
[root@JD tmp]# ll -a 
-rw-------   1 root root 4096 Nov 18 21:07 .xxx.log.swp
[root@JD tmp]# rm -rf .xxx.log.swp

第二次编辑 修改第三组权限为6(rw) 即其他组有读跟写权限

-bash: chomd: command not found
[root@JD tmp]# chmod 646 xxx.log
[root@JD tmp]# ll
-rw-r--rw- 1 root root  5 Nov 18 21:08 xxx.log
切换用户,进行编辑,成功
[root@JD tmp]# su - jack 
Last login: Mon Nov 18 21:11:43 CST 2019 on pts/0
[jack@JD ~]$ pwd
/home/jack
[jack@JD ~]$ cd /tmp/
编辑成功
[jack@JD tmp]$ vi xxx.log 

先撤回该文件的其他组的 写权限,修改第二组权限为读跟写,将jack用户添加到root组中,然后用jack用户编辑,成功

[jack@JD tmp]$ exit
logout
[root@JD tmp]# ll
total 4
-rw-r--rw- 1 root root  9 Nov 18 21:23 xxx.log
[root@JD tmp]# chmod 664 xxx.log  
[root@JD tmp]# ll
total 4
-rw-rw-r-- 1 root root  9 Nov 18 21:23 xxx.log
[root@JD tmp]# usermod -a -G root jack
[root@JD tmp]# su - jack
Last login: Mon Nov 18 21:22:49 CST 2019 on pts/0
[jack@JD ~]$ cd /tmp/
[jack@JD tmp]$ vi xxx.log 	

查看文件或文件夹大小

文件:
ll
du -sh xxx.log
文件夹:
du -sh yyy

搜索 find

find / -name xxx

  • 代表模糊匹配
    history 历史记录
    ps -ef 查看进程
    top 系统情况
    查看某一组件部署在那

      [root@JD tmp]# find / -name '*hadoop*'
      /tmp/xxxhadoopxxx
      [root@JD tmp]# find /tmp -name '*hadoop*' 
      /tmp/xxxhadoopxxx
      [root@JD tmp]# 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值