
1.不要让文件或目录被他人读写。
如果不信任本组用户,umask设置为022。确保自己的.profile他人不可读写;暂存目录最好不要存放重要文件;home目录任何人不可写; uucp传输的文件应该加密,并尽快转移到自己的目录中。
2.若不想要其他用户读文件或目录,就要使其不允许任何人读。
umask设置为006/007。若不允许同组用户存取自己的文件和目录,umask设置为077;暂存文件按当前umask设置。存放重要数据到暂存文件的程序,就被写成能确保暂存文件其他用户不可读。这样,就可确保别的用户不可读home目录。
拷贝和移动文件的安全用cp命令拷贝文件时,若目的文件不存在,则将同时拷贝源文件的存取许可,包括Suid和Sgid许可。新拷贝的文件属拷贝用户所有,故拷贝别人的文件时应小心,不要被其他用户的Suid程序破坏文件安全。
用mv命令移动文件时,新移的文件存取许可与原文件相同,mv仅改变文件名。只要用户有目录的写和搜索许可,就可移走该目录中某人的Suid程序,且不改变存取许可。若目录许可设置不正确,则用户的Suid程序可能被移到不能修改和删除的目录中,从而出现安全漏洞。
cpio命令用于将目录结构拷贝到一个普通文件中,然后再用cpio命令将该普通文件转成目录结构。小心使用该命令,因为它能覆盖不在当前目录结构中的文件,用t选项可首先列出要被拷贝的文件。
不要离开登录的终端这个问题看起来简单,但却是最容易忽视的问题,哪怕只是几分钟的疏忽,也会给系统造成危害。
文件加密的安全crypt命令可提供给用户加密文件。它使用一个关键词将标准输入的信息编码变为不可读的杂乱字符串,送到标准输出设备。再次使用该命令,用同一关键词作用于加密后的文件,可恢复文件内容。
一般来说,文件加密后应删除原始文件,只留下加密后的版本,且不能忘记加密关键词。vi命令一般都有加密功能,用vi -x命令可编辑加密后的文件。加密关键词的选取规则与口令的选取规则相同。
由于crypt程序可能被做成特洛伊木马,故不宜用口令做为关键词。最好在加密前用pack或compress命令对文件进行压缩,然后再加密。
CU的问题CU命令能使用户从一个Linux系统登录到另一个Linux系统。此时,在远地系统还必须输入“~”后回车,以断开CU和远地系统的连接。
CU也有安全问题。如果本机安全性弱于远地机,不提倡用CU去登录远地机,以免由于本地机不安全而影响较安全的远地机。由于CU的老版本处理“~”的方法不完善,从安全性强的系统调用,会使安全性弱的系统的用户使用强系统用户的CU,传送强系统的/etc/passwd文件。
暂存文件和目录的安全Linux系统中暂存目录为/tmp和/usr/tmp,如果用这些目录存放暂存文件,别的用户可能会破坏这些文件。使用暂存文件最好将文件屏蔽值定义为007。保险的方法是建立自己的暂存文件和目录$Home/Mp,不要将重要文件存放于公共的暂存目录。
UUCP文件传输和网络安全UUCP命令用于将文件从一个Linux系统传送到另一个Linux系统。通过UUCP传送的文件,通常存于/usr/spool/uucppublic/login目录中,Login是用户的登录名,该目录存取许可为777。通过网络传输并存放于此目录的文件属于UUCP所有,文件存取许可为666和777。用户应当将通过UUCP传送的文件加密,并尽快移到自己的目录中。其它网络将文件传送到用户home目录下的RJC目录中。该目录对其他人是可写、可搜索的,但不一定是可读的,因而用户的RJC目录的存取许可方式应为733,允许程序在其中建立文件。同样,传送的文件也应加密并尽快移到自己的目录中。
Suid/Sgid的安全尽量不写Suid/Sgid程序。in为现有文件建立一个链,即建立一个引用同一文件的新名字。如目的文件已经存在,则该文件被删除而代之以新的链;或存在的目的文件不允许用户写,则请求用户确认是否删除该文件,因为只允许在同一文件系统内建链。若要删除一个Suid文件,就要确认文件的链接数,只有一个链才能确保该文件被删除。若Suid文件已有多个链,一种方法是改变其存取许可方式,这将同时修改所有链的存取许可;也可以Chmod000文件名,这不仅取消了文件的Suid和Sgid许可,同时也取消了文件的全部链。要想找到谁与自己Suid程序建立了链,不要立刻删除该程序,系统管理员可用Ncheck命令找到该程序的其他链。
智能终端的安全由于智能终端有Send Enter换码序列,因此告诉终端当前系统就像是用户敲入的一样。这是一种危险的能力,其他人可用Write命令发送信息给本用户终端。禁止其他用户发送信息的方法是使用Mesgn命令。Mesgn不允许其他用户发信息,Mesgy允许其他用户发信息。 即使如此仍有换码序列的问题存在,任何一个用户用Mail命令发送同样一组换码序列,不同的要用!rm-r*替换rm-r*。
其他安全问题除了信任的用户外,不要运行其他用户的程序。在自己的Path中,将系统目录放在前面。用Ctrl+D或Exit退出后,在断开与系统的连接前看到login:提示后再离开,以免在用户没注销时他人进入。定时使用ls -a .命令列出当前目录中的全部文件,包括以“.”开头的文件,查看所有文件的存取许可方式和所有者。任何不属于自己的文件都应怀疑和追究。
以上这些是我作为Linux系统管理员对保持用户账户安全的一些建议。更重要的是要建立安全意识,了解用户。系统管理员越熟悉自己的用户和用户工作习惯源码天空
,就越能快速发现不寻常的事件,而不寻常的事件就意味着系统安全问题。避免用户账户不安全事故的最基本方法是预防和定期的安全检查,包括使用嗅探器。
int con=atoi(portstr)unsigned char Port_file_name[30]
int fd0,rc
struct termios ts0
switch (con)
{ //选项O_NOCTTY 表示不能把本串口当成控制终端,否则用户的键盘输入信息将影响程序的执行
//O_NDELAY表示打开串口的时候,程序并不关心另一端的串口是否在使用中
case 1: fd0=open("/dev/ttyM0",O_RDWR | O_NOCTTY | O_NDELAY)break
case 2: fd0=open("/dev/ttyM1",O_RDWR | O_NOCTTY | O_NDELAY)break
case 3: fd0=open("/dev/ttyM2",O_RDWR | O_NOCTTY | O_NDELAY)break
case 4: fd0=open("/dev/ttyM3",O_RDWR | O_NOCTTY | O_NDELAY)break
case 5: fd0=open("/dev/ttyM4",O_RDWR | O_NOCTTY | O_NDELAY)break
case 6: fd0=open("/dev/ttyM5",O_RDWR | O_NOCTTY | O_NDELAY)break
case 7: fd0=open("/dev/ttyM6",O_RDWR | O_NOCTTY | O_NDELAY)break
case 8: fd0=open("/dev/ttyM7",O_RDWR | O_NOCTTY | O_NDELAY)break
default : fd0=open("/dev/ttyM0",O_RDWR | O_NOCTTY | O_NDELAY)break
}
tcgetattr(fd0,&ts0)
bzero(&ts0,sizeof(struct termios))
switch (gytype)
{
case 1:{ts0.c_cflag |= B300 | CS7 | CLOCAL | CREAD | PARENB
ts0.c_cflag &= ~PARODD// 转换为偶效验
ts0.c_iflag |= INPCK// Disnable parity checking
break}
case 2:{ts0.c_cflag |= B1200 | CS8 | CLOCAL | CREAD | PARENB
ts0.c_cflag &= ~PARODD// 转换为偶效验
ts0.c_iflag |= INPCK// Disnable parity checking
break
}
case 3:{
ts0.c_cflag |= B9600 | CS8 | CLOCAL | CREAD
ts0.c_cflag &= ~PARENB// Clear parity enable
ts0.c_iflag &= ~INPCK// Enable parity checking
break
}
case 4:{ts0.c_cflag |= B9600 | CS8 | CLOCAL | CREAD | PARENB
ts0.c_cflag &= ~PARODD// 转换为偶效验
ts0.c_iflag |= INPCK// Disnable parity checking
break
}
}
ts0.c_lflag &= ~ECHO
ts0.c_lflag &= ~ECHONL
ts0.c_iflag &= ~IXOFF
ts0.c_iflag &= ~IXON
ts0.c_cflag &= ~CSIZE
switch (gytype)
{
case 1:{ts0.c_cflag |= CS7 break}
case 2:{ts0.c_cflag |= CS8 break}
case 3:{ts0.c_cflag |= CS8 break}
case 4:{ts0.c_cflag |= CS8 break}
}
ts0.c_lflag &= ~ICANON//如果设置使能规范输入,否则使用原始数据(本文使用)
ts0.c_oflag &= ~ONLCR//如果设置将NL转换成CR-NL后输出
ts0.c_iflag &= ~INLCR//如果设置将接收到的NL(换行)转换成CR(回车)。
ts0.c_cc[VMIN] = 0//最少可读数据
ts0.c_cc[VTIME] = 0//等待数据时间(10秒的倍数)
ts0.c_cflag &= ~CSTOPB//如果设置则使用两个停止位 ,如果取消则使用一个停止位
ts0.c_iflag |= IGNBRK//如果设置则忽略接收到的break信号
ts0.c_lflag &= ~IEXTEN//如果设置则启用实现自定义的输入处理
ts0.c_lflag |= NOFLSH//如果设置则禁止产生SIGINT,SIGQUIT和SIGSUSP信号时刷新输入和输出队列
switch (gytype)
{
case 1:{rc = cfsetospeed(&ts0,B300)break}
case 2:{rc = cfsetospeed(&ts0,B1200)break}
case 3:{rc = cfsetospeed(&ts0,B9600)break}
case 4:{rc = cfsetospeed(&ts0,B9600)break}
}
rc = tcsetattr(fd0,TCSAFLUSH,&ts0)
return fd0
你说的情况应该是真实的,不过能玩什么样的游戏就是另外一码事了。首先来说龙芯并不是走如Intel和AMD等的X86CPU的路线,它主要目的是控制类型的芯片,所以它目前还不具备象P3那样的个人电脑运行的特点,水平相当主要是指制造水平和设计水平两个方面。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)