Debian8.1安装配置完成并成功与window共享文件但在系统重启后访问时出现如下问题
(图)的解决方法
出现问题后手动重启samba
sudo /etc/init.d/samba start
再次从window端访问成功,所以一本人现在的认知决定手动写一个脚本开机自动启动samba服务器
如何添加这一个开机自动运行脚本
1.脚本内容及其简单
#!/bin/bash ### BEGIN INIT INFO # Provides: start_samba # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Run /etc/init.d/start_samba if it exist ### END INIT INFO sudo /etc/init.d/samba start
上面那一堆还不知道有什么意义,但是没有就会有警告不知道去掉会不会对脚本的执行有没有影响。
2.脚本写完成后增加执行权限并复制到启动目录下
sudo chmod
sudo cp start_samba /etc/init.d/
3.测试运行发现问题
fa@NanoPi2:~$./start_samba [sudo] password for fa:
4.开始查找关于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#uidUser以指定用户的身份执行命令。后面的用户是除root以外的,,可以是用户名,也可以是#uid。
sudo -k Kill清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -K Surekill与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
sudo -b commandBackground在后台执行指定的命令。
三.配置sudo
通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止
两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。
其配置文件内容部分如下:
# User privilege specification root ALL=(ALL:ALL) ALL fa ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
其中三个ALL:第一个是指网络中的主机;第二个括号中的两个分别是指 sudo -u命令时可以以谁的身份去执行(两个选一个)例子中的ALL就是
可以以任何用户身份去执行;第三个时可以执行的指令名 。其中第二个可以在sudoers 文件中设置一个为默认
Defaults:user runas_default=user1
例如:
让用户user可以通过sudo执行任何root可执行的命令
user ALL=(ALL:ALL)ALL
也可以指定user使用sudo 可执行的命令
user localhost=http://www.mamicode.com/sbin/ifconfig,/bin/ls
再执行其他的不属于上面限定的命令就得到如下输出
Sorry,user is not allowed to execute ‘/usr/bin/’
Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行: Defaultsenv_reset
现在到了本文最关键的时候就是让运行
sudo /etc/init.d/samba start
时不再需要输入密码
user NanoPi2=NOPASSWD:/etc/init.d/samba
然后上面哪个脚本就可以运行了。
如何开机自动运行
在上面吧把可以运行的脚本cp到/etc/init.d/下再执行
sudo updata-rc.d start_samba defaults 99
即可;其中的数字是启动顺序越大启动越靠后。
要删除这个启动项只要执行
sudo updata-rc.d -f start_samba remove
参考博文:
https://www.magentonotes.com/ubuntu-config-autostart-shell-script.html
Debian8.1 安装samba与windows共享文件无法自起解决方法