3.7 SU 命令:
1. 在linux系统中,由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。
su为switch user,即切换用户的简写。
SU 在登录时,要录入ROOT权限的密码
格式为两种:
su -l USERNAME(-l为login,即登陆的简写)
su USERNAME
如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root 或su。
su USERNAME,与su - USERNAME的不同之处如下:
su - USERNAME切换用户后,同时切换到新用户的工作环境中。
su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。
su -
su -,su -l或su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用su -命令则默认转换成成root用户了。
而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。
总结:
通过su可以在用户之间切换,而超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。
补充:
2、su 的用法:
su [OPTION选项参数] [用户]
-, -l, ——login 登录并改变到所切换的用户环境;
-c, ——commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
至于更详细的,请参看man su ;
3、su 的范例:
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
[beinan@localhost ~]?$ suPassword:[root@localhost beinan]# pwd/home/beinan
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
[beinan@localhost ~]?$ pwd/home/beinan[beinan@localhost ~]?$ su -Password:[root@localhost ~]# pwd/root
su 参数 - 用户名
[beinan@localhost ~]?$ su - root 注:这个和su - 是一样的功能;
Password:
[root@localhost ~]# pwd
/root
[beinan@localhost ~]?$ su - linuxsir 注:这是切换到 linuxsir用户
Password: 注:在这里输入密码;
[linuxsir@localhost ~]?$ pwd 注:查看用户当前所处的位置;
/home/linuxsir
[linuxsir@localhost ~]?$ id 注:查看用户的UID和GID信息,主要是看是否切换过来了;
uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)
[linuxsir@localhost ~]?$
[beinan@localhost ~]?$ su - -c ls 注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;
Password: 注:在这里输入root的密码;
anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot
[beinan@localhost ~]?$ pwd 注:查看当前用户所处的位置;
/home/beinan
[beinan@localhost ~]?$ id 注:查看当前用户信息;
uid=500(beinan) gid=500(beinan) groups=500(beinan)
3.8 sudo 命令
sudo不错的教程: http://www.jianshu.com/p/51338e41abb7
sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;
格式:sudo -u USERNAME COMMAND
默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。
sudo 参数命令总结:
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
3.9 限制root远程登录:
当我们限制root用户登录需要修改
/etc/ssh/sshd_config
这个配置文件,找到:
#PermitRootLogin yes
把#去掉 yes改为no
然后保存退出重启服务
systemctl restart sshd.service
这样就是限制了root登陆,我们root用户就登陆不上了
这个时候我们要在限制root用户之前
需要给一下普通用户的登陆权限,要不然我们是进不了系统的
这样 我们是给ygw这个普通用户不需要密码就可以使用su命令
就可以切到root用户下:
4.1 df 命令
df (disk filesystem的简写) 用于查看已挂载磁盘的总容量、使用容量、剩余容量等。可以不加任何参数,默认以KB为单位显示。
df的常用选项有-i,-h,-k,-m. /dev,/dev/shm为内存分区,大小为内存的1/2;/run,/sys/fs/cgroup等分区都是tmpfs.这些文件为临时系统文件。
-i 表示查看inodes的使用状况,如使用100% 即时空间有富余,也会提示磁盘空间已满。
-h 表示使用合适的单位显示,例如GB。
-K和-M :表示以KB和MB 为单位显示。
4.2 du 命令
du 命令(disk useage)用来查看某个目录或文件所占空间的大小。
格式: du(-abckmsh) 【文件或者目录名】
-a 表示全部文件和目录的大小都列出来。
-h, 表示系统自动调节单位。
-s,表示只列出总和。
一般会用 du -sh filename 命令。
4.3 磁盘分区
给虚拟机增加一块磁盘的操作 :
1. 在虚拟机选项卡,选择“设置”。
2. 按照向导默认下一步提示操作。e写,
3. 在“指定磁盘容量” ,选择“将虚拟机磁盘存储为单个文件”选择。
4. 添加完成磁盘之后,重启系统。
fdisk -l 把系统中所有的磁盘设备以及分区表显示出来
fdisk 下命令参数:
n: 表示建立一个新的分区。
w: 表示保存。
q: 表示退出
d:表示删除一个分区
划分分区,最多可划分4个主分区。如果需要划分超过4个分区,则把第四个分区为扩展分区。逻辑分区从ID为5开始,而且分区号是连续的。
4.4 格式化磁盘分区
windows 下的文件系统有FAT32和NTFS. 而centOS 是以XFS作为默认的文件系统。
格式化磁盘命令: mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4和mkfs.xfs
这几个命令名称不同,其实都是一样的。
命令选项:
-b: 表示分区时设定每个数据区块占用的空间大小。
-i: 表示设定inode的大小。
-N:表示设定的inode的数量。有时默认的inode数不够用,所以要自定义的inode的数量。
-C: 表示在格式化前先检测一下磁盘是否有问题,加上这个选项,速度会很慢。
-I: 表示预设该分区的标签
-j: 表示EXT32格式的分区。如果采用专门mkfs.ext3格式,不用加这个选项。
-t:用来指定文件系统的类型。可以是ext2,ext3,也可以是ext4.
磁盘被格式化指定为ext4 时,必须用mkfs.xfs. mke2fs并不支持把分区格式化成XFS类型。
磁盘块的概念: ext4 文件系统的默认块大小为4096B(即4KB),在格式化时,可以指定块大小为1024B,2048B,4096B.不能超过4096B, 一旦超过,就不正正常挂载了。
-l 指定分区标签: