1.Redhat 7将网卡名称eno16777736改为eth0
- 输入如下命令,进入对应目录,编辑文件:
vim /etc/sysconfig/grub
- 然后,往这个文件中添加“net.ifnames=0 biosdevname=0”内容
- 紧接着,执行如下命令:
grub2-mkconfig -o /boot/grub2/grub.cfg
- 然后,重启系统后查看网卡名称:
2.Linux执行History下的命令
当你在shell(控制台、终端随便叫)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,
一般保存在用户目录下的.bash_history文件中。默认保存1000条,当然你可以更改这个值。
使用history命令来显示列表,可以跟一个整数表示希望显示最后的多少条命令。如下:
history 5
526 ls
527 clear
528 ls -a
529 charm &
530 date
- 执行History下的命令的方法
- !n 这个n表示序号,假如你想重新执行第528条命令ls -a,那么你可以使用!528
- !! 这将会重新执行上一条命令
- !?String? 这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。比如你输入 !?cl? 那第527条命令clear就会执行。
- fc n 这个n表示某个历史命令的序号,这将打开一个文本编辑窗口并显示这条命令。然后你可以编辑修改这条命令,让它满足你的需要。当你退出这个编辑窗口时,该命令就会得到执行。
3.解决command not found
如果新装的系统,运行一些很正常的诸如:ifconfig shutdown,fdisk的命令时,悍然提示:bash:command not found。那么首先就要考虑root 的$PATH里是否已经包含了这些环境变量(可能是安装的时候选择了“最小安装”,导致一些功能没开启)。
主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin。
这四个目录里主要存放的东东:
/bin:
bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/usr/bin:
主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。/sbin:
主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。/usr/sbin:
放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。可以在家目录下查看.bash_profile里的PATH。如果是:PATH= PATH: HOME/bin则需要添加成如下:
- PATH=
PATH:
HOME/bin:/sbin:/usr/bin:/usr/sbin
应该就可以运行了
- PATH=
PATH:
HOME/bin:/sbin:/usr/bin:/usr/sbin
我们还可以修改 profile文件, 将 /sbin目录添加到 PATH 里, 这样不论在个目录里, 都不用输入绝对路径就可以运行这个此命令, 方法如下:
打开用 root权限编辑 /etc/profile 文件:
vim /etc/profile
在此文件的最后一行加入下面代码, 然后保存文件并退出.
export PATH=$PATH:/sbin
在终端中运行下列命令:
source /etc/profile
然后再输入 “ifconfig” 就可以直接运行此命令了.
还可以通过输入 ifconfig 命令的绝对路径, ifconfig在是/sbin这个目录下面, 所以在终端输入下列命令就可以运行此命令:
/sbin/ifconfig
4.mkfs.xfs 命令找不到的解决方法
-对硬盘进行格式化:
# mkfs.xfs /dev/sdb1
系统显示:
mkfs.xfs error:
command not found.
可能是系统不完全安装
运行 which mkfs 查看mkfs的命令目录
# which mkfs
/sbin/mkfs
# ls -la /sbin/mkfs*
-rwxr-xr-x. 1 root root 10336 8月 6 2017 /sbin/mkfs
-rwxr-xr-x. 1 root root 26208 8月 6 2017 /sbin/mkfs.cramfs
-rwxr-xr-x. 5 root root 68960 8月 13 2017 /sbin/mkfs.ext2
-rwxr-xr-x. 5 root root 68960 8月 13 2017 /sbin/mkfs.ext3
-rwxr-xr-x. 5 root root 68960 8月 13 2017 /sbin/mkfs.ext4
-rwxr-xr-x. 5 root root 68960 8月 13 2017 /sbin/mkfs.ext4dev
lrwxrwxrwx. 1 root root 7 8月 2 18:06 /sbin/mkfs.msdos -> mkdosfs
lrwxrwxrwx. 1 root root 7 8月 2 18:06 /sbin/mkfs.vfat -> mkdosfs
发现没有 mkfs.xfs
需要安装 xfsprogs rpm包
#yum -y install xfsprogs
就ok了
5.Set uid, gid,sticky bit的三个权限的详细说明
一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.
如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.
setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于
该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.
下面说一下如何操作这些标志:
操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
1) chmod u+s temp ##为temp文件加上setuid标志. (setuid 只对文件有效)
chmod g+s tempdir ##为tempdir目录加上setgid标志 (setgid 只对目录有效)
chmod o+t temp ##为temp文件加上sticky标志 (sticky只对文件有效)
2) 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如4666, 2777等. 这一组八进制数字三位的意义如下,
abc
a -- setuid位, 如果该位为1, 则表示设置setuid
b -- setgid位, 如果该位为1, 则表示设置setgid
c -- sticky位, 如果该位为1, 则表示设置sticky
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r– ##表示有setuid标志
rwxrwsrw- ##表示有setgid标志
rwxrw-rwt ##表示有sticky标志
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
chmod 4777是设sid
chmod 2777是设置gid
chmod 1777是设sticky
常用操作
找出所有危险的目录(设置目录所有人可读写却没有设置sticky位的目录)
- find / -perm -0007 -type d
找出所有设置了suid的文件
- find / -perm -4000 -type f
补充: (angelus)
SGID位,文件也是可以被设置为SGID的,比如一个可执行文件为赋予SGID,它就具有所有组的特权,任意存取所有组所能使用的系统资源,复制到拥有SGID位目录的文件,只有在复制时加上-p参数,才能保留原来的组群设置
还有sticky-bit权限,简单说就是文件的其他用户即使有写权限也无法删除.移动等,只能被文件所有者删除,移动等
在系统中典型例子就是/tmp(系统临时文件目录)避免不守法用户恣意乱删其他用户放置的文件
SUID占用属主x(执行)位,SGID占用组x位,sticky-bit占用其他x位,如果该位有x权限,就用小写s,没有就用大写S
用数值设定特殊权限,需要4位8进制数,第一个表示特殊权限,后三位表示基本权限
只说第一位8进制代表权限
0: 不设置特殊权限
1: 只设置sticky
2 : 只设置SGID
3: 只设置SGID和sticky
4 : 只设置SUID
5 : 只设置SUID和sticky
6 : 只设置SUID和SGID
7 : 设置3种权限
“为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。”
chmod u+s 就是给某个程序的所有者以suid权限,可以像root用户一样操作。
变更文件或目录的权限。
在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"
-:不具任何权限,数字代号为"0"。
s:特殊?b>功能说明:变更文件或目录的权限。
6.Linux下su与su -命令的本质区别
su 命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su - 命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。