Kartkówka

Prawa dostępu w odniesieniu do katalogów

Komendy chmod (laboratorium 2) można używać także w odniesieniu do katalogów. W przykładach poniżej przedstawiono znaczenie praw dostępu dla katalogów. W lewej kolumnie znajduje się przykład katalogu, na którym przeprowadzono ćwiczenia zaprezentowane w prawej kolumnie.

> ls -agoR 2katalog/

total 24

drwxr-sr-x   3     512 Nov 02 12:26 .

drwxr-sr-x   3     512 Nov 02 12:02 ..

drwxr-sr-x   3     512 Nov 02 12:27 3katalog

-rw-r--r--   1       0 Nov 02 12:01 a

-rw-r--r--   1       0 Nov 02 12:02 b

-rw-r--r--   1       0 Nov 02 12:02 c

 

2katalog/3katalog:

total 24

drwxr-sr-x   3     512 Nov 02 12:27 .

drwxr-sr-x   3     512 Nov 02 12:26 ..

-rw-r--r--   1       0 Nov 02 12:27 .en

-rw-r--r--   1       0 Nov 02 12:27 .pro

drwxr-sr-x   2     512 Nov 02 12:27 Rozne

 

2katalog/3katalog/Rozne:

total 16

drwxr-sr-x   2     512 Nov 02 12:27 .

drwxr-sr-x   3     512 Nov 02 12:27 ..

>

> chmod u-x 2katalog/

> cd 2katalog/

2katalog/: Permission denied.

> ls 2katalog/

3katalog  a         b         c

> touch 2katalog/aa

touch 2katalog/aa:The file access permissions do not allow the specified action.

touch: 0652-048 Cannot change the modification time on 2katalog/aa.

> rm 2katalog/a

rm: 2katalog/a: The file access permissions do not allow the specified action.

> ls -go 2katalog/

ls: 0653-345 2katalog/a: Permission denied.

ls: 0653-345 2katalog/b: Permission denied.

ls: 0653-345 2katalog/c: Permission denied.

ls: 0653-345 2katalog/3katalog: Permission denied.

total 0

> cd 2katalog/3katalog

2katalog/3katalog: Permission denied.

> chmod u+x 2katalog/

>

>

>

> chmod u-r 2katalog/

> cd 2katalog/

> ls

ls: 0653-343 Cannot read ..

> touch aa

> ls aa

aa

> ls 3katalog/

Rozne

> rm aa

> cd ..

> chmod u+r 2katalog/

>

>

>

> chmod u-w 2katalog/

> cd 2katalog/

> ls -go

total 8

drwxr-sr-x   3     512 Nov 02 12:27 3katalog

-rw-r--r--   1       0 Nov 02 12:01 a

-rw-r--r--   1       0 Nov 02 12:02 b

-rw-r--r--   1       0 Nov 02 12:02 c

> rm a

rm: 0653-609 Cannot remove a.

The file access permissions do not allow the specified action.

> cd 3katalog/

> ls

Rozne

> touch a

> ls a

a

> rm a

> cd ..

> cd ..

> chmod u+w 2katalog/

W przypadku, gdy użytkownik nie ma prawa wykonywania (x) dla danego katalogu, nie może między innymi:

·       usunąć plików w tym katalogu,

·       uczynić tego katalogu, ani jego podkatalogów, katalogiem bieżącym.

Jeśli użytkownik nie ma prawa czytania dla danego katalogu, nie może:

·       wyświetlić jego zawartości.

Jeśli użytkownik nie ma prawa czytania dla danego katalogu, nie może:

·       usuwać plików w katalogu.


Zmiana programu z laboratorium 2

Program z laboratorium 2 należy zmienić tak, jak poniżej.

> cat pro.c

#include <stdio.h>

 

main()

{

 int i;

 for (i=1;i<50000;i++)

  {

   fprintf(stdout, "STDOUT\n");

   fprintf(stderr, "STDERR\n");

  }

 exit(0);

 

}

> cc -o pro pro.c

> ./pro 2>&a

> cat a

STDERR

STDERR

STDERR

STDERR

...

STDOUT

STDOUT

>

Komunikaty STDOUT i STDERR nie są wyświetlane na przemian, lecz blokami. Wielkość tych bloków zależy od buforów przeznaczonych dla strumieni: standardowego błędów i standardowego wyjściowego.

Polecenia

calendar — polecenie wyświetlające linie z pliku calendar. Wyświetla tylko te linie, które zawierają dzisiejszą i jutrzejszą datę. Rozpoznaje następujące formaty dat: 7/*, 7 December,  7/12, * 7 or DEC. 7 . W piątek wyświetla także plan na sobotę, niedzielę i poniedziałek.

> cat calendar

98/11/04 coś do zrobienia.

11/03 dzień wcześniej

11/05 znowu coś do zrobienia

też coś do zrobienia 11/04

11.04 nie chce mi sie z tobą gadać...

11/06 dwa dni później

dzień później Nov 5

wszystkie dni listopada nie działa Nov *

czwarty dzień każdego miesiąca */04

> date

Wed Nov  4 10:01:55 NFT 1998

> calendar

98/11/04 coś do zrobienia.

11/05 znowu coś do zrobienia

też coś do zrobienia 11/04

dzień później Nov 5

czwarty dzień każdego miesiąca */04

>

banner — wypisuje dużymi literami ciąg znaków. Na przykład:

> banner Pisanie

######

#     #     #     ####     ##    #    #     #    ######

#     #     #    #        #  #   ##   #     #    #

######      #     ####   #    #  # #  #     #    #####

#           #         #  ######  #  # #     #    #

#           #    #    #  #    #  #   ##     #    #

#           #     ####   #    #  #    #     #    ######

 

>

file — polecenie file określa typ pliku. Flaga -f: pozwala na wczytanie nazw plików z pliku. Przykłady:

> ls > a

> file -f a

2katalog:       directory

a:              ascii text

cmd:            ascii text

cmd2:           commands text

nowyPlik:       ascii text

plik:           empty

plik1:          ascii text

plik2:          ascii text

pro:            executable or object module not stripped

pro.c:          c program text

val:            ascii text

> file a

a:              ascii text

>

Plik .login

Komendy z pliku o nazwie .login, znajdującego się w katalogu domowym użytkownika, są wykonywane zawsze podczas logowania użytkownika do systemu. Przykład (po lewej plik .login, po prawej rezultaty działania podczas logowania):

> cat .login

banner CZĘŚĆ

date

>

 #####  ####### #######  #####   #####

#     #      #  #       #     # #     #

#           #   #       #       #

#          #    #####    #####  #

#         #     #             # #

#     #  #      #       #     # #     #

 #####  ####### #######  #####   #####

 

Wed Nov  4 10:50:52 NFT 1998

>