Автор Тема: Help with (umask and system)  (Прочитано 3613 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RainMan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help with (umask and system)
« : 23 Июня 2004, 11:10:03 »
есть программа которая создает файлы с заведомо неправильными для меня permissions. Для исправления этого я использую комманду umask 022 в шелле и все становится ок!
Но если я в скрипте напишу umask 022 и через комманду system  из скрипта запущу свою прогу то она все равно не верно задает пермишинсы.... помогите плз! как из скрипта задавать маску по умолчанию???

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Help with (umask and system)
« Ответ #1 : 23 Июня 2004, 11:30:23 »
perldoc -f chmod ?
The documentations is your friend

Оффлайн RainMan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help with (umask and system)
« Ответ #2 : 23 Июня 2004, 11:37:06 »
не... мне не нужно указывать для каждого файла необходимый пермишн или менять его (это слишком долго для моей задачи) для этого и используется маска которая по умолчанию выставляет те пермишины которые нужно давать файлы при создании их какой либо сторонней программой!
если из шелла задать маску и потом из этого же шелла создавfть файлы то все нормально - так как маска указывает какие пермишины по умолчанию нужно ставить!
если же запускать из перл скрипта программу которая занимается созданием файла то из шелла не переходит значение маски и соответственно файлы создаются с маской по умолчанию которая меня не устраивает!
вот вопрос в этом и заключается как заставить скрипт видет ту маску которую я задаю а не игнорировать ее?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Help with (umask and system)
« Ответ #3 : 23 Июня 2004, 11:58:12 »
покажи кусок кода где у тебя вызов system
The documentations is your friend

Оффлайн RainMan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help with (umask and system)
« Ответ #4 : 23 Июня 2004, 12:07:59 »
kod:

$command="my_proga";
umask 022;
system "$command";

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Help with (umask and system)
« Ответ #5 : 23 Июня 2004, 12:44:35 »
perldoc -f umask

И задавайте Вашу маску в начале перл скрипта который создаёт файлы. А для создания файла что-нибудь типа

sysopen  (FILE, $OutFile, O_CREAT, 0666) or die "$!\\n";
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн RainMan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help with (umask and system)
« Ответ #6 : 23 Июня 2004, 13:48:17 »
зачем тада создавать маску если уже указали пермишн для файла? маска для того и служит чтоб если ничего не указывать то создается файл с пермишинами по умолчанию - как в маске!

проблема решилась немного другим образом!
я использовал системный umask а есть еще перловый который корректно отработал!
всем спасибо!

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Help with (umask and system)
« Ответ #7 : 23 Июня 2004, 16:04:35 »
Цитировать
RainMan:
зачем тада создавать маску если уже указали пермишн для файла?



#umask
022

Вариант 1

#more t.pl
#!/usr/local/bin/perl

use strict;
use Fcntl;

umask 011;
sysopen  (TEXT, \'test.txt\', O_CREAT, 0666) || die "$!\\n";

#./t.pl
#ls -la
-rw-rw-rw-    1 root    root           0 Jun 23 13:50 test.txt
#rm test.txt

Вариант 2

#more t.pl
#!/usr/local/bin/perl

use strict;
use Fcntl;

sysopen  (TEXT, \'test.txt\', O_CREAT, 0666) || die "$!\\n";

#./t.pl
#ls -la
-rw-r--r--    1 root    root           0 Jun 23 13:50 test.txt

#rm test.txt

Вариант 3

#more t.pl
#!/usr/local/bin/perl

use strict;
use Fcntl;

umask 011;
sysopen  (TEXT, \'test.txt\', O_CREAT, 0777) || die "$!\\n";

#./t.pl
#ls -la
-rwxrw-rw-    1 root    root           0 Jun 23 13:50 test.txt

#rm test.txt
#rm test.txt

Вариант 4

#more t.pl
#!/usr/local/bin/perl

use strict;
use Fcntl;

umask 011;
sysopen  (TEXT, \'test.txt\', O_CREAT) || die "$!\\n";

#./t.pl
#ls -la
-rw-rw-rw-    1 root    root           0 Jun 23 13:50 test.txt

#rm test.txt

Вариант 5

#more t.pl
#!/usr/local/bin/perl

use strict;
use Fcntl;

sysopen  (TEXT, \'test.txt\', O_CREAT) || die "$!\\n";

#./t.pl
#ls -la
-rw-r--r--    1 root    root           0 Jun 23 13:50 test.txt

#rm test.txt
Цитировать
маска для того и служит чтоб если ничего не указывать то создается файл с пермишинами по умолчанию - как в маске!

Это верно.
« Последнее редактирование: 23 Июня 2004, 17:16:49 от vladsu »
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн RainMan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help with (umask and system)
« Ответ #8 : 23 Июня 2004, 17:11:43 »
понятно!
спасибо!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28