1. linux特殊权限 SUID、SGID、Sticky
文件的特殊权限有三种:1、suid;2、sgid;3、sticky,其中,suid和sgid用于累加提升权限,简单来说就是如果原来的用户可以访问,反而切换到的用户或者组不能访问,这时候照样是可以访问的,下面介绍下这三种权限。
SUID:
1、需要注意的是,只对二进制可执行程序有效,不能为普通文件;
2、发起者对程序文件必须拥有执行权限;
3、启动为进程之后,其进程的宿主为原程序文件的宿主;
4、SUID设置在目录上毫无意义。
SGID:
可以应用在二进制文件和作用在文件夹下,当作用在二进制文件下时,作用和SUID相似,只不过SUID是把发起者临时变为文件的所有者,而SGID是把进程的发起者变成源程序文件的属组,默认情况下,用户创建文件时,其属组为此用户所属的主组,当SGID作用在目录下时,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录。
Sticky:
默认情况下用户可以删除具有写权限的目录中的任何文件,无论该文件的权限或拥有权,如果在目录设置Sticky位,只有文件的所有者或root**可以删除该文件,Sticky位是作用在文件夹的,设置在文件上毫无意义。
2. linux为什么有时候会出现找不到文件的情况呢
Linux有时会出现找不到文件的情况,这主要是由于文件系统的问题、路径错误、权限问题或文件确实不存在等原因造成的。
在Linux系统中,文件找不到的情况可能由多种因素引起。首先是文件系统的问题。如果文件系统出现错误或损坏,系统可能无法正确读取或定位文件。这种情况通常发生在硬盘出现故障或文件系统受到外部干扰时。例如,突然断电或系统崩溃可能导致文件系统的不一致状态,从而影响文件的访问。
其次,路径错误也是常见的原因之一。在Linux中,路径是用来定位文件的唯一标识。如果用户或程序提供了错误的路径,系统自然无法找到对应的文件。这包括路径中的拼写错误、使用了错误的目录分隔符,或者路径结构本身就不符合Linux的文件系统规范。
再者,权限问题也可能导致文件无法访问。Linux系统是一个多用户系统,每个文件和目录都有相应的访问权限。如果用户没有足够的权限去访问某个文件,系统就会拒绝访问,从而表现为找不到文件。例如,一个普通用户可能无法访问root用户创建的私有文件,除非文件权限被适当设置。
最后,文件确实不存在是最直接也是最简单的原因。如果文件被删除、移动或从未被创建,那么尝试访问它时自然会收到“找不到文件”的错误。这种情况通常发生在用户或程序错误地处理了文件路径或文件名,或者在文件操作过程中出现了逻辑错误。
综上所述,Linux系统中找不到文件的情况可能由文件系统问题、路径错误、权限问题或文件确实不存在等多种原因造成。理解和解决这些问题需要用户对Linux的文件系统和权限管理有一定的了解。
3. linux ubuntu web服务器突然拒绝访问
可能是WEB服务被中止。
如果服务器内存、CPU、带宽占用都是正常的,那更多的就是要检查WEB服务的进程(Nginx、Apache等)是否正常、可以写个最简单的HTML页面测试是否正常。
4. 为什么在win7访问linux时看不到共享文件
在访问Linux系统中共享文件时,可能会遇到无法看到共享文件的情况,尤其在使用Windows系统进行访问时。为了深入理解这一现象,我们首先需要明确几个关键点。
首先,确保Linux系统和Windows系统之间的网络连接稳定,网络地址正确无误。在访问Linux共享文件时,网络连接的稳定性至关重要,任何网络问题都可能阻止文件的正常访问。
其次,检查Linux服务器的共享设置。确保Linux系统已经启用了Samba服务,这是Linux系统中常用的文件共享服务。同时,确保在Linux服务器的共享目录下为Windows用户(在这里指的是访问者)设置了相应的访问权限,通常包括读取、写入等操作权限。
第三,确认在Windows系统中使用的挂载命令格式正确。在提供的示例中,命令格式为“mount //192.168.0.1/ShareDir /media –o user=guest,pass=gpass”。请确保在实际操作中使用正确的命令格式,并且输入的用户名和密码与Linux服务器设置的一致。
接下来,检查访问过程中可能出现的错误信息。有时,访问共享文件时可能遇到权限问题,错误提示可能显示为“拒绝访问”或“权限不足”。这种情况下,需要在Linux服务器端调整共享目录的访问权限,或者在Windows端使用管理员权限执行挂载操作。
在排除了网络连接、服务启用、权限设置等常见问题后,如果仍然无法看到共享文件,可以尝试以下方法进行进一步排查:
1. 检查Linux服务器的日志文件,查看是否有与访问共享文件相关的错误信息。服务器的日志文件通常包含详细的系统信息,有助于定位问题原因。
2. 确认Windows系统的防火墙设置。确保防火墙未阻止Samba服务的通信端口,通常Samba服务使用的端口号为445。如果防火墙阻止了通信,需要调整防火墙规则以允许端口通信。
3. 使用文件浏览器进行访问。尝试使用Windows系统的文件资源管理器或Linux系统的图形界面文件浏览器(如Nautilus)来访问共享文件。浏览器通常提供更直观的文件管理体验,有助于快速定位问题。
总之,解决在Windows系统访问Linux共享文件时无法看到文件的问题,需要从网络连接、服务设置、权限配置、命令格式、错误排查等多方面进行综合检查。通过逐步排除可能的问题点,可以有效定位并解决访问过程中遇到的障碍。
5. Linux系统中的sudo命令使用讲解
“Sudo” 是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像restart,reboot,passwd之类的命令,或者编辑一些系统配置文件这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。
sudo是个统管一切的命令。它的字面意思是代表“超级用户才能做!”(super user do!)对Linux系统管理员或高级用户而言,它是必不可少的最重要的命令之一。你可曾有过这样的经历:在终端中试着运行某个命令,结果却遇到“拒绝访问”?这个就是你所需要的命令!但正所谓,权力越大,责任也越大!较之以根用户身份登录,或者使用 su “switch user” 命令,sudo要好得多。请耐心读下去,看看sudo能为你做些什么!
sudo:它有什么用途?
那么,sudo实际能做些什么呢?如果你在任何Linux命令的前面加上“sudo”这个前缀,那么它会以提升的权限来运行该命令。执行某些管理任务需要提升的权限。有一天,你可能想运行一台LAMP(Linux Apache MySQL PHP)服务器,又要手动编辑配置文件。你可能还要重新启动或重置Apache Web服务器或者是其他服务后台程序。你甚至需要提升的权限来关闭或重新计算机。“嘿,谁关闭了这台机子?”
如果你熟悉Windows,sudo与当你试图处理任何重要操作时,弹出来的Windows用户帐户控制(ACL)对话框非常相似,只是不如后者来得友好。在Windows中,如果你试图执行某项管理任务,对话框就会问你是否想继续执行(“你果真确信想要运行刚才点击的这个程序吗?”)随后执行该任务。在Mac机器上,一个安全对话框会弹出来,要求你输入密码,并点击“确定”。
而Linux方面显得更有戏剧性。要是没有适当的权限,一些操作会显得相当怪异。你在编辑的那个重要的配置文件可能无法正确保存内容。你安装上去的那个程序可能就是拒绝运行。你已下载、想要编译的那段出色的源代码编译不了。你要是不走运的话,甚至还会看到“拒绝访问”或另一个错误信息。
sudo是提升权限的最出色、最安全的方法。我们不妨看一下提升权限的另一个方法。作为切换用户命令,“su”会要求你输入根密码,并且给你一个超级用户提示符,以#符号表示。这个#符号意味着“危险!你已作根用户登录上去!”你下达的第一个命令也许顺利执行完毕。但是你一旦忘了,会继续以根用户身份登录。要是打错一个字,就完蛋了!你清除了整个硬驱,而不是清除你下载的那个盗版mp3文件。你的Web服务器和家庭公司统统不见了!如果是sudo,你就得在每一个命令之前输入“sudo”。因而,你没必要记得切回到常规用户模式,那样发生的事故就会更少。
Suderos文件
这个文件可谓是sudo的基础。它控制着谁可以使用sudo命令来获得提升的权限。它通常位于/etc/sudoers。想编辑这个文件,最有效最安全的方式就是,使用visudo命令。这个命令会以提升权限启动vi编辑器,那样你就能编辑并保存该文件。它还会给sudoers文件上文件锁,那样别人无法编辑该文件。一旦你完成了编辑工作,它会分析文件,查找有无简单的错误。编辑sudo文件要比仅仅使用任何旧的文本编辑器来得安全得多。
该文件含有许多参数。你可以指定哪些用户或哪些用户助可以执行哪些命令。我们准备为自己授予访问sudo的权限,为此只要在底部添加:
username ALL=(ALL) ALL //为用户“username”授予sudo访问权 %wheel ALL=(ALL) ALL //为属于wheel用户组的所有用户授予sudo访问权
现在指定的用户名就能够使用所有根权限了。你还可以允许某个用户或用户组只对特定服务或服务器拥有sudo访问权,以取代ALL参数,不过那是另一个话题了。
几个选项
与任何优秀的命令一样,也有几个很棒的选项可以让sudo处理更多的事务。
sudo -b会在后台运行命令。这对显示许多实时输出内容的命令来说很有用。
sudo -s 会运行以提升权限指定的外壳,为你提供#提示符(别忘了退出!)
sudo su -会让你成为根用户,并装入你那些自定义的用户环境变量。
有没有现在就用它?
我们想要运行重要任务时,sudo提供了安全的提升权限。在Ubuntu用户当中,它也许是使用最广泛、功能最强大的命令,因为它已成为该发行版中的首选方法。既然你拥有了这么大的权利,那么在运行命令时务必要做到安全!世上可没有su-undo撤销命令!
sudo的特点
sudo扮演的角色注定了它要在安全方面格外谨慎,否则就会导致非法用户攫取root权限。同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它。sudo设计者的宗旨是:给用户尽可能少的权限但仍允许完成他们的工作。所以,sudo 有以下特点:
# 1. sudo能够限制指定用户在指定主机上运行某些命令。
# 2. sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。
# 3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
# 4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。
sudo常用命令
复制代码代码如下:sudo -h Help列出使用方法,退出。复制代码代码如下:sudo -V Version显示版本信息,并退出。复制代码代码如下:sudo -l List列出当前用户可以执行的命令。只有在sudoers里 的用户才能使用该选项。复制代码代码如下:sudo -u username|#uid User以指定用户的身份执行命令。后 面的用户是除root以外的,可以是用户名,也可以 是#uid。复制代码代码如下:sudo -k Kill清除“入场卷”上的时间,下次再使用sudo时要 再输入密码。复制代码代码如下:sudo -K Sure kill与-k类似,但是它还要撕毁“入场卷”,也 就是删除时间戳文件。复制代码代码如下:sudo -b command Background在后台执行指定的命令。复制代码代码如下:sudo -p prompt command Prompt可以更改询问密码的提示语, 其中%u会代换为使用者帐号名称,%h会显示主机名称。 非常人性化的设计。复制代码代码如下:sudo -e file Edit不是执行命令,而是修改文件,相当于命 令sudoedit。