• Debian8.1 安装samba与windows共享文件,在系统重启后samba服务无法自动启动


    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  +x start_samba

    sudo cp  start_samba  /etc/init.d/

    3.测试运行发现这个这个脚本在执行时需要手动输入密码,所以肯定不能达到目地的。

    4.开始查找关于sudo的配置的问题总结如下

    sudo的特点:

    sudo能够限制指定用户在指定主机上运行某些命令。

    sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。

    sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。

    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=/sbin/ifconfig,/bin/ls

    再执行其他的不属于上面限定的命令就会被sudo限制。

    好了言归正传让脚本中启动samba服务的命令执行时不再需要输入密码,只要在sudoers文件中加入下面这一行就可以了。

    user NanoPi2=NOPASSWD:/etc/init.d/samba
    

     然后上面哪个脚本就可以不用输入管理员密码执行了

    2,如何设置开机自动运行呢?

    把脚本复制到/etc/init.d/下再执行下面命令

    sudo updata-rc.d   start_samba  defaults   99

    其中的数字是启动顺序,数字越大启动越靠后启动,如果是网络应用建议数字设置大一点。

    相反如果要删除这个启动项只要执行下面命令

    sudo updata-rc.d  -f  start_samba   remove

    参考博文:  http://www.jb51.net/article/48390.htm

                  https://www.magentonotes.com/ubuntu-config-autostart-shell-script.html

     

  • 相关阅读:
    centos安装vim
    thrift学习之二----学习资料积累
    thrift学习之一-------介绍
    组合模式
    一致性哈希算法(consistent hashing)
    php配置php-fpm启动参数及配置详解
    error while loading shared libraries的解決方法
    数据结构之二叉树
    768、最多能完成排序的块(贪心算法)
    VS code 配置C++编译环境
  • 原文地址:https://www.cnblogs.com/w-smile/p/6414460.html
Copyright © 2020-2023  润新知