# suid и скрипт

## Semyon

Здравствуйте!

Имеется некоторый скрипт, который настраивает сеть (т.е. использует ifconfig, iwconfig). 

Как мне сделать так, чтобы обычный пользователь смог его выполнить?

chmod u+s script.sh не помогает (наверное, я не совсем понимаю, что делает suid).

----------

## axce1

как вариант можно сделать так

chmod 4755 script.sh

и если память не изменяет мне то suid ставиться chmod +s script.sh

----------

## Semyon

 *axce1 wrote:*   

> как вариант можно сделать так
> 
> chmod 4755 script.sh
> 
> и если память не изменяет мне то suid ставиться chmod +s script.sh

 

chmod +s script.sh cтавит suid и sgid одновременно (т.е. равносильно chmod u+s script.sh; chmod g+s script.sh)

Вот пример который не работает:

script.sh:

```

#!/bin/bash

/sbin/ifconfig eth0 192.168.2.3

```

если

```
$ chmod 4755 script.sh
```

то

```
$ ./script.sh

SIOCSIFADDR: Отказано в доступе

SIOCSIFFLAGS: Отказано в доступе

```

----------

## mango123

а sudo -никак нельзя дать?

типа 

```
%users  ALL=/sbin/твой_скрипт NOPASSWD: ALL 
```

----------

## Semyon

 *mango123 wrote:*   

> а sudo -никак нельзя дать?
> 
> типа 
> 
> ```
> ...

 

Да, sudo подходит - я не знал что его можно так использовать.

Только строка несколько другая по-моему

```
%users ALL= (root) NOPASSWD: /sbin/myscript 
```

----------

## mango123

 *Semyon wrote:*   

>  *mango123 wrote:*   а sudo -никак нельзя дать?
> 
> типа 
> 
> ```
> ...

 

Блин, ошибся. Писал по памяти   :Very Happy: 

----------

## andrey-x

 *Semyon wrote:*   

> 
> 
> chmod u+s script.sh не помогает (наверное, я не совсем понимаю, что делает suid).

 

Флаг suid на сценарии командной оболочки установить конечно можно, только он игнорируется самой командной оболочкой! Т.е. устанавливать флаг suid на сценарии бессмысленно.

----------

