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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<refentry xmlns:xi="http://www.w3.org/2003/XInclude" xmlns:samba="http://www.samba.org/samba/DTD/samba-doc" id="smb.conf.5">
<refmeta>
<refentrytitle>smb.conf</refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
<refmiscinfo class="version">3.2</refmiscinfo>
</refmeta>
<refnamediv>
<refname>smb.conf</refname>
<refpurpose>The configuration file for the Samba suite</refpurpose>
</refnamediv>
<refsect1>
<title>SYNOPSIS</title>
<para>
The <filename moreinfo="none">smb.conf</filename> file is a configuration file for the Samba suite. <filename moreinfo="none">smb.conf</filename> contains runtime configuration information for the Samba programs. The
<filename moreinfo="none">smb.conf</filename> file is designed to be configured and administered by the
<citerefentry><refentrytitle>swat</refentrytitle> <manvolnum>8</manvolnum></citerefentry> program. The
complete description of the file format and possible parameters held within are here for reference purposes.
</para>
</refsect1>
<refsect1 id="FILEFORMATSECT">
<title>FILE FORMAT</title>
<para>
The file consists of sections and parameters. A section begins with the name of the section in square brackets
and continues until the next section begins. Sections contain parameters of the form:
<programlisting>
<replaceable>name</replaceable> = <replaceable>value </replaceable>
</programlisting>
</para>
<para>
The file is line-based - that is, each newline-terminated line represents either a comment, a section name or
a parameter.
</para>
<para>Section and parameter names are not case sensitive.</para>
<para>
Only the first equals sign in a parameter is significant. Whitespace before or after the first equals sign is
discarded. Leading, trailing and internal whitespace in section and parameter names is irrelevant. Leading
and trailing whitespace in a parameter value is discarded. Internal whitespace within a parameter value is
retained verbatim.
</para>
<para>
Any line beginning with a semicolon (<quote>;</quote>) or a hash (<quote>#</quote>)
character is ignored, as are lines containing only whitespace.
</para>
<para>
Any line ending in a <quote><literal>\</literal></quote> is continued on the next line in the customary UNIX fashion.
</para>
<para>
The values following the equals sign in parameters are all either a string (no quotes needed) or a boolean,
which may be given as yes/no, 1/0 or true/false. Case is not significant in boolean values, but is preserved
in string values. Some items such as create masks are numeric.
</para>
</refsect1>
<refsect1>
<title>SECTION DESCRIPTIONS</title>
<para>
Each section in the configuration file (except for the [global] section) describes a shared resource (known as
a <quote>share</quote>). The section name is the name of the shared resource and the parameters within the
section define the shares attributes.
</para>
<para>
There are three special sections, [global], [homes] and [printers], which are described under
<emphasis>special sections</emphasis>. The following notes apply to ordinary section descriptions.
</para>
<para>
A share consists of a directory to which access is being given plus a description of the access rights
which are granted to the user of the service. Some housekeeping options are also specifiable.
</para>
<para>
Sections are either file share services (used by the client as an extension of their native file systems)
or printable services (used by the client to access print services on the host running the server).
</para>
<para>
Sections may be designated <emphasis>guest</emphasis> services, in which case no password is required to
access them. A specified UNIX <emphasis>guest account</emphasis> is used to define access privileges in this
case.
</para>
<para>
Sections other than guest services will require a password to access them. The client provides the
username. As older clients only provide passwords and not usernames, you may specify a list of usernames to
check against the password using the <literal>user =</literal> option in the share definition. For modern clients
such as Windows 95/98/ME/NT/2000, this should not be necessary.
</para>
<para>
The access rights granted by the server are masked by the access rights granted to the specified or guest
UNIX user by the host system. The server does not grant more access than the host system grants.
</para>
<para>
The following sample section defines a file space share. The user has write access to the path <filename moreinfo="none">/home/bar</filename>. The share is accessed via the share name <literal>foo</literal>:
<programlisting>
<parameter>[foo]</parameter>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PATH" xlink:href="smb.conf.5.html#PATH">path = /home/bar</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only = no</link>
</programlisting>
</para>
<para>
The following sample section defines a printable share. The share is read-only, but printable. That is,
the only write access permitted is via calls to open, write to and close a spool file. The <emphasis>guest
ok</emphasis> parameter means access will be permitted as the default guest user (specified elsewhere):
<programlisting>
<parameter>[aprinter]</parameter>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PATH" xlink:href="smb.conf.5.html#PATH">path = /usr/spool/public</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only = yes</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTABLE" xlink:href="smb.conf.5.html#PRINTABLE">printable = yes</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok = yes</link>
</programlisting>
</para>
</refsect1>
<refsect1>
<title>SPECIAL SECTIONS</title>
<refsect2>
<title>The [global] section</title>
<para>
Parameters in this section apply to the server as a whole, or are defaults for sections that do not
specifically define certain items. See the notes under PARAMETERS for more information.
</para>
</refsect2>
<refsect2 id="HOMESECT">
<title>The [homes] section</title>
<para>
If a section called [homes] is included in the configuration file, services connecting clients
to their home directories can be created on the fly by the server.
</para>
<para>
When the connection request is made, the existing sections are scanned. If a match is found, it is
used. If no match is found, the requested section name is treated as a username and looked up in the local
password file. If the name exists and the correct password has been given, a share is created by cloning the
[homes] section.
</para>
<para>
Some modifications are then made to the newly created share:
</para>
<itemizedlist>
<listitem><para>
The share name is changed from homes to the located username.
</para></listitem>
<listitem><para>
If no path was given, the path is set to the user's home directory.
</para></listitem>
</itemizedlist>
<para>
If you decide to use a <emphasis>path =</emphasis> line in your [homes] section, it may be useful
to use the %S macro. For example:
<programlisting>
<userinput moreinfo="none">path = /data/pchome/%S</userinput>
</programlisting>
is useful if you have different home directories for your PCs than for UNIX access.
</para>
<para>
This is a fast and simple way to give a large number of clients access to their home directories with a minimum
of fuss.
</para>
<para>
A similar process occurs if the requested section name is <quote>homes</quote>, except that the share
name is not changed to that of the requesting user. This method of using the [homes] section works well if
different users share a client PC.
</para>
<para>
The [homes] section can specify all the parameters a normal service section can specify, though some make more sense
than others. The following is a typical and suitable [homes] section:
<programlisting>
<parameter>[homes]</parameter>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only = no</link>
</programlisting>
</para>
<para>
An important point is that if guest access is specified in the [homes] section, all home directories will be
visible to all clients <emphasis>without a password</emphasis>. In the very unlikely event that this is actually
desirable, it is wise to also specify <emphasis>read only access</emphasis>.
</para>
<para>
The <emphasis>browseable</emphasis> flag for auto home directories will be inherited from the global browseable
flag, not the [homes] browseable flag. This is useful as it means setting <emphasis>browseable = no</emphasis> in
the [homes] section will hide the [homes] share but make any auto home directories visible.
</para>
</refsect2>
<refsect2 id="PRINTERSSECT">
<title>The [printers] section</title>
<para>
This section works like [homes], but for printers.
</para>
<para>
If a [printers] section occurs in the configuration file, users are able to connect to any printer
specified in the local host's printcap file.
</para>
<para>
When a connection request is made, the existing sections are scanned. If a match is found, it is used.
If no match is found, but a [homes] section exists, it is used as described above. Otherwise, the requested
section name is treated as a printer name and the appropriate printcap file is scanned to see if the requested
section name is a valid printer share name. If a match is found, a new printer share is created by cloning the
[printers] section.
</para>
<para>
A few modifications are then made to the newly created share:
</para>
<itemizedlist>
<listitem><para>The share name is set to the located printer name</para></listitem>
<listitem><para>If no printer name was given, the printer name is set to the located printer name</para></listitem>
<listitem><para>If the share does not permit guest access and no username was given, the username is set
to the located printer name.</para></listitem>
</itemizedlist>
<para>
The [printers] service MUST be printable - if you specify otherwise, the server will refuse
to load the configuration file.
</para>
<para>
Typically the path specified is that of a world-writeable spool directory with the sticky bit set on
it. A typical [printers] entry looks like this:
<programlisting>
<parameter>[printers]</parameter>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PATH" xlink:href="smb.conf.5.html#PATH">path = /usr/spool/public</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok = yes</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTABLE" xlink:href="smb.conf.5.html#PRINTABLE">printable = yes</link>
</programlisting>
</para>
<para>
All aliases given for a printer in the printcap file are legitimate printer names as far as the server is concerned.
If your printing subsystem doesn't work like that, you will have to set up a pseudo-printcap. This is a file
consisting of one or more lines like this:
<programlisting>
alias|alias|alias|alias...
</programlisting>
</para>
<para>
Each alias should be an acceptable printer name for your printing subsystem. In the [global] section,
specify the new file as your printcap. The server will only recognize names found in your pseudo-printcap,
which of course can contain whatever aliases you like. The same technique could be used simply to limit access
to a subset of your local printers.
</para>
<para>
An alias, by the way, is defined as any component of the first entry of a printcap record. Records are separated by newlines,
components (if there are more than one) are separated by vertical bar symbols (<literal>|</literal>).
</para>
<note><para>
On SYSV systems which use lpstat to determine what printers are defined on the system you may be able to use
<literal>printcap name = lpstat</literal> to automatically obtain a list of printers. See the
<literal>printcap name</literal> option for more details.
</para></note>
</refsect2>
</refsect1>
<refsect1>
<title>USERSHARES</title>
<para>Starting with Samba version 3.0.23 the capability for non-root users to add, modify, and delete
their own share definitions has been added. This capability is called <emphasis>usershares</emphasis> and
is controlled by a set of parameters in the [global] section of the smb.conf.
The relevant parameters are :
</para>
<variablelist>
<varlistentry>
<term>usershare allow guests</term>
<listitem><para>Controls if usershares can permit guest access.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare max shares</term>
<listitem><para>Maximum number of user defined shares allowed.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare owner only</term>
<listitem><para>If set only directories owned by the sharing user can be shared.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare path</term>
<listitem><para>Points to the directory containing the user defined share definitions.
The filesystem permissions on this directory control who can create user defined shares.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare prefix allow list</term>
<listitem><para>Comma-separated list of absolute pathnames restricting what directories
can be shared. Only directories below the pathnames in this list are permitted.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare prefix deny list</term>
<listitem><para>Comma-separated list of absolute pathnames restricting what directories
can be shared. Directories below the pathnames in this list are prohibited.</para></listitem>
</varlistentry>
<varlistentry>
<term>usershare template share</term>
<listitem><para>Names a pre-existing share used as a template for creating new usershares.
All other share parameters not specified in the user defined share definition
are copied from this named share.</para></listitem>
</varlistentry>
</variablelist>
<para>To allow members of the UNIX group <literal>foo</literal> to create user defined
shares, create the directory to contain the share definitions as follows:
</para>
<para>Become root:</para>
<programlisting>
mkdir /usr/local/samba/lib/usershares
chgrp foo /usr/local/samba/lib/usershares
chmod 1770 /usr/local/samba/lib/usershares
</programlisting>
<para>Then add the parameters
<programlisting>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USERSHAREPATH" xlink:href="smb.conf.5.html#USERSHAREPATH">usershare path = /usr/local/samba/lib/usershares</link>
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USERSHAREMAXSHARES" xlink:href="smb.conf.5.html#USERSHAREMAXSHARES">usershare max shares = 10</link> # (or the desired number of shares)
</programlisting>
to the global
section of your <filename>smb.conf</filename>. Members of the group foo may then manipulate the user defined shares
using the following commands.</para>
<variablelist>
<varlistentry>
<term>net usershare add sharename path [comment] [acl] [guest_ok=[y|n]]</term>
<listitem><para>To create or modify (overwrite) a user defined share.</para></listitem>
</varlistentry>
<varlistentry>
<term>net usershare delete sharename</term>
<listitem><para>To delete a user defined share.</para></listitem>
</varlistentry>
<varlistentry>
<term>net usershare list wildcard-sharename</term>
<listitem><para>To list user defined shares.</para></listitem>
</varlistentry>
<varlistentry>
<term>net usershare info wildcard-sharename</term>
<listitem><para>To print information about user defined shares.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>PARAMETERS</title>
<para>Parameters define the specific attributes of sections.</para>
<para>
Some parameters are specific to the [global] section (e.g., <emphasis>security</emphasis>). Some parameters
are usable in all sections (e.g., <emphasis>create mask</emphasis>). All others are permissible only in normal
sections. For the purposes of the following descriptions the [homes] and [printers] sections will be
considered normal. The letter <emphasis>G</emphasis> in parentheses indicates that a parameter is specific to
the [global] section. The letter <emphasis>S</emphasis> indicates that a parameter can be specified in a
service specific section. All <emphasis>S</emphasis> parameters can also be specified in the [global] section
- in which case they will define the default behavior for all services.
</para>
<para>
Parameters are arranged here in alphabetical order - this may not create best bedfellows, but at least you can
find them! Where there are synonyms, the preferred synonym is described, others refer to the preferred
synonym.
</para>
</refsect1>
<refsect1>
<title>VARIABLE SUBSTITUTIONS</title>
<para>
Many of the strings that are settable in the config file can take substitutions. For example the option
<quote>path = /tmp/%u</quote> is interpreted as <quote>path = /tmp/john</quote> if the user connected with the
username john.
</para>
<para>
These substitutions are mostly noted in the descriptions below, but there are some general substitutions
which apply whenever they might be relevant. These are:
</para>
<variablelist>
<varlistentry>
<term>%U</term>
<listitem><para>session username (the username that the client wanted, not
necessarily the same as the one they got).</para></listitem>
</varlistentry>
<varlistentry>
<term>%G</term>
<listitem><para>primary group name of %U.</para></listitem>
</varlistentry>
<varlistentry>
<term>%h</term>
<listitem><para>the Internet hostname that Samba is running on.</para></listitem>
</varlistentry>
<varlistentry>
<term>%m</term>
<listitem><para>the NetBIOS name of the client machine (very useful).</para>
<para>This parameter is not available when Samba listens on port 445, as clients no longer
send this information. If you use this macro in an include statement on a domain that has
a Samba domain controller be sure to set in the [global] section <parameter>smb ports =
139</parameter>. This will cause Samba to not listen on port 445 and will permit include
functionality to function as it did with Samba 2.x.
</para></listitem>
</varlistentry>
<varlistentry>
<term>%L</term>
<listitem><para>the NetBIOS name of the server. This allows you to change your config based on what
the client calls you. Your server can have a <quote>dual personality</quote>.
</para></listitem>
</varlistentry>
<varlistentry>
<term>%M</term>
<listitem><para>the Internet name of the client machine.
</para></listitem>
</varlistentry>
<varlistentry>
<term>%R</term>
<listitem><para>the selected protocol level after protocol negotiation. It can be one of CORE, COREPLUS,
LANMAN1, LANMAN2 or NT1.</para></listitem>
</varlistentry>
<varlistentry>
<term>%d</term>
<listitem><para>the process id of the current server
process.</para></listitem>
</varlistentry>
<varlistentry>
<term>%a</term>
<listitem><para>
The architecture of the remote
machine. It currently recognizes Samba (<constant>Samba</constant>),
the Linux CIFS file system (<constant>CIFSFS</constant>), OS/2, (<constant>OS2</constant>),
Windows for Workgroups (<constant>WfWg</constant>), Windows 9x/ME
(<constant>Win95</constant>), Windows NT (<constant>WinNT</constant>),
Windows 2000 (<constant>Win2K</constant>),
Windows XP (<constant>WinXP</constant>),
Windows XP 64-bit(<constant>WinXP64</constant>),
Windows 2003 including
2003R2 (<constant>Win2K3</constant>), and Windows
Vista (<constant>Vista</constant>). Anything else will be known as
<constant>UNKNOWN</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>%I</term>
<listitem><para>the IP address of the client machine.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>%i</term>
<listitem><para>the local IP address to which a client connected.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>%T</term>
<listitem><para>the current date and time.</para></listitem>
</varlistentry>
<varlistentry>
<term>%D</term>
<listitem><para>name of the domain or workgroup of the current user.</para></listitem>
</varlistentry>
<varlistentry>
<term>%w</term>
<listitem><para>the winbind separator.</para></listitem>
</varlistentry>
<varlistentry>
<term>%$(<replaceable>envvar</replaceable>)</term>
<listitem><para>the value of the environment variable
<replaceable>envar</replaceable>.</para></listitem>
</varlistentry>
</variablelist>
<para>
The following substitutes apply only to some configuration options (only those that are
used when a connection has been established):
</para>
<variablelist>
<varlistentry>
<term>%S</term>
<listitem><para>the name of the current service, if any.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>%P</term>
<listitem><para>the root directory of the current service, if any.</para></listitem>
</varlistentry>
<varlistentry>
<term>%u</term>
<listitem><para>username of the current service, if any.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>%g</term>
<listitem><para>primary group name of %u.</para></listitem>
</varlistentry>
<varlistentry>
<term>%H</term>
<listitem><para>the home directory of the user given by %u.</para></listitem>
</varlistentry>
<varlistentry>
<term>%N</term>
<listitem><para>
the name of your NIS home directory server. This is obtained from your NIS auto.map entry.
If you have not compiled Samba with the <emphasis>--with-automount</emphasis> option, this
value will be the same as %L.</para></listitem>
</varlistentry>
<varlistentry>
<term>%p</term>
<listitem><para>
the path of the service's home directory, obtained from your NIS auto.map entry. The NIS
auto.map entry is split up as <literal>%N:%p</literal>.</para></listitem>
</varlistentry>
</variablelist>
<para>
There are some quite creative things that can be done with these substitutions and other
<filename moreinfo="none">smb.conf</filename> options.
</para>
</refsect1>
<refsect1 id="NAMEMANGLINGSECT">
<title>NAME MANGLING</title>
<para>
Samba supports <literal>name mangling</literal> so that DOS and Windows clients can use files that don't
conform to the 8.3 format. It can also be set to adjust the case of 8.3 format filenames.
</para>
<para>
There are several options that control the way mangling is performed, and they are grouped here rather
than listed separately. For the defaults look at the output of the testparm program.
</para>
<para>
These options can be set separately for each service.
</para>
<para>
The options are:
</para>
<variablelist>
<varlistentry>
<term>case sensitive = yes/no/auto</term>
<listitem><para>
controls whether filenames are case sensitive. If they aren't, Samba must do a filename search and match on
passed names. The default setting of auto allows clients that support case sensitive filenames (Linux CIFSVFS
and smbclient 3.0.5 and above currently) to tell the Samba server on a per-packet basis that they wish to
access the file system in a case-sensitive manner (to support UNIX case sensitive semantics). No Windows or
DOS system supports case-sensitive filename so setting this option to auto is that same as setting it to no
for them. Default <emphasis>auto</emphasis>.
</para></listitem>
</varlistentry>
<varlistentry>
<term>default case = upper/lower</term>
<listitem><para>
controls what the default case is for new filenames (ie. files that don't currently exist in the filesystem).
Default <emphasis>lower</emphasis>. IMPORTANT NOTE: This option will be used to modify the case of
<emphasis>all</emphasis> incoming client filenames, not just new filenames if the options <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CASESENSITIVE" xlink:href="smb.conf.5.html#CASESENSITIVE">case sensitive = yes</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRESERVECASE" xlink:href="smb.conf.5.html#PRESERVECASE">preserve case = No</link>,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SHORTPRESERVECASE" xlink:href="smb.conf.5.html#SHORTPRESERVECASE">short preserve case = No</link> are set. This change is needed as part of the
optimisations for directories containing large numbers of files.
</para></listitem>
</varlistentry>
<varlistentry>
<term>preserve case = yes/no</term>
<listitem><para>
controls whether new files (ie. files that don't currently exist in the filesystem) are created with the case
that the client passes, or if they are forced to be the <literal>default</literal> case. Default
<emphasis>yes</emphasis>.
</para></listitem>
</varlistentry>
<varlistentry>
<term>short preserve case = yes/no</term>
<listitem><para>
controls if new files (ie. files that don't currently exist in the filesystem) which conform to 8.3 syntax,
that is all in upper case and of suitable length, are created upper case, or if they are forced to be the
<literal>default</literal> case. This option can be used with <literal>preserve case = yes</literal> to permit
long filenames to retain their case, while short names are lowercased. Default <emphasis>yes</emphasis>.
</para></listitem>
</varlistentry>
</variablelist>
<para>
By default, Samba 3.0 has the same semantics as a Windows NT server, in that it is case insensitive
but case preserving. As a special case for directories with large numbers of files, if the case
options are set as follows, "case sensitive = yes", "case preserve = no", "short preserve case = no"
then the "default case" option will be applied and will modify all filenames sent from the client
when accessing this share.
</para>
</refsect1>
<refsect1 id="VALIDATIONSECT">
<title>NOTE ABOUT USERNAME/PASSWORD VALIDATION</title>
<para>
There are a number of ways in which a user can connect to a service. The server uses the following steps
in determining if it will allow a connection to a specified service. If all the steps fail, the connection
request is rejected. However, if one of the steps succeeds, the following steps are not checked.
</para>
<para>
If the service is marked <quote>guest only = yes</quote> and the server is running with share-level
security (<quote>security = share</quote>, steps 1 to 5 are skipped.
</para>
<orderedlist continuation="restarts" inheritnum="ignore" numeration="arabic">
<listitem><para>
If the client has passed a username/password pair and that username/password pair is validated by the UNIX
system's password programs, the connection is made as that username. This includes the
<literal>\\server\service</literal>%<replaceable>username</replaceable> method of passing a username.
</para></listitem>
<listitem><para>
If the client has previously registered a username with the system and now supplies a correct password for that
username, the connection is allowed.
</para></listitem>
<listitem><para>
The client's NetBIOS name and any previously used usernames are checked against the supplied password. If
they match, the connection is allowed as the corresponding user.
</para></listitem>
<listitem><para>
If the client has previously validated a username/password pair with the server and the client has passed
the validation token, that username is used.
</para></listitem>
<listitem><para>
If a <literal>user = </literal> field is given in the <filename moreinfo="none">smb.conf</filename> file for the
service and the client has supplied a password, and that password matches (according to the UNIX system's
password checking) with one of the usernames from the <literal>user =</literal> field, the connection is made as
the username in the <literal>user =</literal> line. If one of the usernames in the <literal>user =</literal> list
begins with a <literal>@</literal>, that name expands to a list of names in the group of the same name.
</para></listitem>
<listitem><para>
If the service is a guest service, a connection is made as the username given in the <literal>guest account
=</literal> for the service, irrespective of the supplied password.
</para></listitem>
</orderedlist>
</refsect1>
<refsect1>
<title>REGISTRY-BASED CONFIGURATION</title>
<para>
Starting with Samba version 3.2.0, the capability to
store Samba configuration in the registry is available.
The configuration is stored in the registry key
<emphasis><literal>HKLM\Software\Samba\smbconf</literal></emphasis>.
There are two levels of registry configuration:
</para>
<orderedlist continuation="restarts" inheritnum="ignore" numeration="arabic">
<listitem><para>Share definitions stored in registry are used.
This is triggered by setting the global
parameter <parameter>registry shares</parameter>
to <quote>yes</quote> in <emphasis>smb.conf</emphasis>.
</para>
<para>The registry shares are loaded not at startup but
on demand at runtime by <emphasis>smbd</emphasis>.
Shares defined in <emphasis>smb.conf</emphasis> take
priority over shares of the same name defined in
registry.</para></listitem>
<listitem>
<para>Global <emphasis>smb.conf</emphasis>
options stored in registry are used. This can be activated
in two different ways:</para>
<para>Firstly, a registry only configuration is triggered
by setting
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CONFIGBACKEND" xlink:href="smb.conf.5.html#CONFIGBACKEND">config backend = registry</link>
in the [global] section of <emphasis>smb.conf</emphasis>.
This resets everything that has been read from config files
to this point and reads the content of the global configuration
section from the registry.
This is the recommended method of using registry based
configuration.</para>
<para>Secondly, a mixed configuration can be activated
by a special new meaning of the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INCLUDE" xlink:href="smb.conf.5.html#INCLUDE">include = registry</link>
in the [global] section of <emphasis>smb.conf</emphasis>.
This reads the global options from registry with the same
priorities as for an include of a text file.
This may be especially useful in cases where an initial
configuration is needed to access the registry.</para>
<para>Activation of global registry options automatically
activates registry shares. So in the registry only case,
shares are loaded on demand only.</para>
</listitem>
</orderedlist>
<para>
Note: To make registry-based configurations foolproof
at least to a certain extent, the use
of <parameter>lock directory</parameter> and
<parameter>config backend</parameter>
inside the registry configuration has been disabled:
Especially by changing the
<parameter>lock directory</parameter> inside the registry
configuration, one would create a broken setup where the daemons
do not see the configuration they loaded once it is active.
</para>
<para>
The registry configuration can be accessed with
tools like <emphasis>regedit</emphasis> or <emphasis>net (rpc)
registry</emphasis> in the key
<emphasis><literal>HKLM\Software\Samba\smbconf</literal></emphasis>.
More conveniently, the <emphasis>conf</emphasis> subcommand of the
<citerefentry><refentrytitle>net</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> utility
offers a dedicated interface to read and write the
registry based configuration locally, i.e. directly
accessing the database file, circumventing the
server.
</para>
</refsect1>
<refsect1>
<title>EXPLANATION OF EACH PARAMETER</title>
<section xml:base="../smbdotconf/parameters.all.xml">
<section><indexterm significance="preferred"><primary>abort shutdown script</primary></indexterm><anchor id="ABORTSHUTDOWNSCRIPT"/><title>
abort shutdown script (G)
</title><variablelist><varlistentry><listitem>
<para>This a full path name to a script called by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> that
should stop a shutdown procedure issued by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SHUTDOWNSCRIPT" xlink:href="smb.conf.5.html#SHUTDOWNSCRIPT">shutdown script</link>.</para>
<para>If the connected user posseses the <constant>SeRemoteShutdownPrivilege</constant>,
right, this command will be run as user.</para>
<para>Default: <emphasis><parameter>abort shutdown script</parameter> = <literal>""</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>abort shutdown script</parameter> = <literal>/sbin/shutdown -c</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>acl check permissions</primary></indexterm><anchor id="ACLCHECKPERMISSIONS"/><title>
acl check permissions (S)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls what <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>does on receiving a protocol request of "open for delete"
from a Windows client. If a Windows client doesn't have permissions to delete a file then they
expect this to be denied at open time. POSIX systems normally only detect restrictions on delete by
actually attempting to delete the file or directory. As Windows clients can (and do) "back out" a
delete request by unsetting the "delete on close" bit Samba cannot delete the file immediately
on "open for delete" request as we cannot restore such a deleted file. With this parameter set to
true (the default) then smbd checks the file system permissions directly on "open for delete" and denies the
request without actually deleting the file if the file system permissions would seem to deny it.
This is not perfect, as it's possible a user could have deleted a file without Samba being able to
check the permissions correctly, but it is close enough to Windows semantics for mostly correct
behaviour. Samba will correctly check POSIX ACL semantics in this case.
</para>
<para>If this parameter is set to "false" Samba doesn't check permissions on "open for delete"
and allows the open. If the user doesn't have permission to delete the file this will only be
discovered at close time, which is too late for the Windows user tools to display an error message
to the user. The symptom of this is files that appear to have been deleted "magically" re-appearing
on a Windows explorer refersh. This is an extremely advanced protocol option which should not
need to be changed. This parameter was introduced in its final form in 3.0.21, an earlier version
with slightly different semantics was introduced in 3.0.20. That older version is not documented here.
</para>
<para>Default: <emphasis><parameter>acl check permissions</parameter> = <literal>True</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>acl compatibility</primary></indexterm><anchor id="ACLCOMPATIBILITY"/><title>
acl compatibility (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies what OS ACL semantics should
be compatible with. Possible values are <emphasis>winnt</emphasis> for Windows NT 4,
<emphasis>win2k</emphasis> for Windows 2000 and above and <emphasis>auto</emphasis>.
If you specify <emphasis>auto</emphasis>, the value for this parameter
will be based upon the version of the client. There should
be no reason to change this parameter from the default.</para>
<para>Default: <emphasis><parameter>acl compatibility</parameter> = <literal>Auto</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>acl compatibility</parameter> = <literal>win2k</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>acl group control</primary></indexterm><anchor id="ACLGROUPCONTROL"/><title>
acl group control (S)
</title><variablelist><varlistentry><listitem>
<para>
In a POSIX filesystem, only the owner of a file or directory and the superuser can modify the permissions
and ACLs on a file. If this parameter is set, then Samba overrides this restriction, and also allows the
<emphasis>primary group owner</emphasis> of a file or directory to modify the permissions and ACLs
on that file.
</para>
<para>
On a Windows server, groups may be the owner of a file or directory - thus allowing anyone in
that group to modify the permissions on it. This allows the delegation of security controls
on a point in the filesystem to the group owner of a directory and anything below it also owned
by that group. This means there are multiple people with permissions to modify ACLs on a file
or directory, easing managability.
</para>
<para>
This parameter allows Samba to also permit delegation of the control over a point in the exported
directory hierarchy in much the same way as Windows. This allows all members of a UNIX group to
control the permissions on a file or directory they have group ownership on.
</para>
<para>
This parameter is best used with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INHERITOWNER" xlink:href="smb.conf.5.html#INHERITOWNER">inherit owner</link> option and also
on on a share containing directories with the UNIX <emphasis>setgid bit</emphasis> set
on them, which causes new files and directories created within it to inherit the group
ownership from the containing directory.
</para>
<para>
This is parameter has been was deprecated in Samba 3.0.23, but re-activated in
Samba 3.0.31 and above, as it now only controls permission changes if the user
is in the owning primary group. It is now no longer equivalent to the
<parameter moreinfo="none">dos filemode</parameter> option.
</para>
<para>Default: <emphasis><parameter>acl group control</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>acl map full control</primary></indexterm><anchor id="ACLMAPFULLCONTROL"/><title>
acl map full control (S)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>maps a POSIX ACE entry of "rwx" (read/write/execute), the maximum
allowed POSIX permission set, into a Windows ACL of "FULL CONTROL". If this parameter is set to true any POSIX
ACE entry of "rwx" will be returned in a Windows ACL as "FULL CONTROL", is this parameter is set to false any
POSIX ACE entry of "rwx" will be returned as the specific Windows ACL bits representing read, write and
execute.
</para>
<para>Default: <emphasis><parameter>acl map full control</parameter> = <literal>True</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add group script</primary></indexterm><anchor id="ADDGROUPSCRIPT"/><title>
add group script (G)
</title><variablelist><varlistentry><listitem>
<para>
This is the full pathname to a script that will be run <emphasis>AS ROOT</emphasis> by <citerefentry>
<refentrytitle>smbd</refentrytitle><manvolnum>8</manvolnum></citerefentry> when a new group is requested. It
will expand any <parameter moreinfo="none">%g</parameter> to the group name passed. This script is only useful
for installations using the Windows NT domain administration tools. The script is free to create a group with
an arbitrary name to circumvent unix group name restrictions. In that case the script must print the numeric
gid of the created group on stdout.
</para>
<para>Default: <emphasis><parameter>add group script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add group script</parameter> = <literal>/usr/sbin/groupadd %g</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add machine script</primary></indexterm><anchor id="ADDMACHINESCRIPT"/><title>
add machine script (G)
</title><variablelist><varlistentry><listitem>
<para>
This is the full pathname to a script that will be run by
<citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> when a machine is
added to Samba's domain and a Unix account matching the machine's name appended with a "$" does not
already exist.
</para>
<para>This option is very similar to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ADDUSERSCRIPT" xlink:href="smb.conf.5.html#ADDUSERSCRIPT">add user script</link>, and likewise uses the %u
substitution for the account name. Do not use the %m
substitution. </para>
<para>Default: <emphasis><parameter>add machine script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add machine script</parameter> = <literal>/usr/sbin/adduser -n -g machines -c Machine -d /var/lib/nobody -s /bin/false %u</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add port command</primary></indexterm><anchor id="ADDPORTCOMMAND"/><title>
add port command (G)
</title><variablelist><varlistentry><listitem>
<para>Samba 3.0.23 introduced support for adding printer ports
remotely using the Windows "Add Standard TCP/IP Port Wizard".
This option defines an external program to be executed when
smbd receives a request to add a new Port to the system.
The script is passed two parameters:</para>
<itemizedlist>
<listitem><para><parameter moreinfo="none">port name</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">device URI</parameter></para></listitem>
</itemizedlist>
<para>The deviceURI is in the for of socket://<hostname>[:<portnumber>]
or lpd://<hostname>/<queuename>.</para>
<para>Default: <emphasis><parameter>add port command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add port command</parameter> = <literal>/etc/samba/scripts/addport.sh</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>addprinter command</primary></indexterm><anchor id="ADDPRINTERCOMMAND"/><title>
addprinter command (G)
</title><variablelist><varlistentry><listitem>
<para>With the introduction of MS-RPC based printing
support for Windows NT/2000 clients in Samba 2.2, The MS Add
Printer Wizard (APW) icon is now also available in the
"Printers..." folder displayed a share listing. The APW
allows for printers to be add remotely to a Samba or Windows
NT/2000 print server.</para>
<para>For a Samba host this means that the printer must be
physically added to the underlying printing system.
The <parameter moreinfo="none">addprinter command</parameter>
defines a script to be run which
will perform the necessary operations for adding the printer
to the print system and to add the appropriate service definition
to the <filename moreinfo="none">smb.conf</filename> file in order that it can be
shared by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>.</para>
<para>The <parameter moreinfo="none">addprinter command</parameter> is
automatically invoked with the following parameter (in
order):</para>
<itemizedlist>
<listitem><para><parameter moreinfo="none">printer name</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">share name</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">port name</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">driver name</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">location</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">Windows 9x driver location</parameter></para></listitem>
</itemizedlist>
<para>All parameters are filled in from the PRINTER_INFO_2 structure sent
by the Windows NT/2000 client with one exception. The "Windows 9x
driver location" parameter is included for backwards compatibility
only. The remaining fields in the structure are generated from answers
to the APW questions.</para>
<para>Once the <parameter moreinfo="none">addprinter command</parameter> has
been executed, <literal>smbd</literal> will reparse the <filename moreinfo="none">
smb.conf</filename> to determine if the share defined by the APW
exists. If the sharename is still invalid, then <literal>smbd
</literal> will return an ACCESS_DENIED error to the client.</para>
<para>
The <parameter moreinfo="none">addprinter command</parameter> program
can output a single line of text,
which Samba will set as the port the new printer is connected to.
If this line isn't output, Samba won't reload its printer shares.
</para>
<para>Default: <emphasis><parameter>addprinter command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>addprinter command</parameter> = <literal>/usr/bin/addprinter</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add share command</primary></indexterm><anchor id="ADDSHARECOMMAND"/><title>
add share command (G)
</title><variablelist><varlistentry><listitem>
<para>
Samba 2.2.0 introduced the ability to dynamically add and delete shares via the Windows NT 4.0 Server
Manager. The <parameter moreinfo="none">add share command</parameter> is used to define an external program
or script which will add a new service definition to <filename moreinfo="none">smb.conf</filename>. In order
to successfully execute the <parameter moreinfo="none">add share command</parameter>, <literal>smbd</literal> requires that the administrator be connected using a root account (i.e. uid == 0).
</para>
<para>
If the connected account has <literal>SeDiskOperatorPrivilege</literal>, scripts defined in
<parameter moreinfo="none">change share</parameter> parameter are executed as root.
</para>
<para>
When executed, <literal>smbd</literal> will automatically invoke the
<parameter moreinfo="none">add share command</parameter> with five parameters.
</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">configFile</parameter> - the location of the global <filename moreinfo="none">smb.conf</filename> file.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">shareName</parameter> - the name of the new share.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">pathName</parameter> - path to an **existing**
directory on disk.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">comment</parameter> - comment string to associate with the new
share.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">max
connections</parameter>
Number of maximum simultaneous connections to this
share.
</para>
</listitem>
</itemizedlist>
<para>
This parameter is only used for add file shares. To add printer shares, see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ADDPRINTERCOMMAND" xlink:href="smb.conf.5.html#ADDPRINTERCOMMAND">addprinter command</link>.
</para>
<para>Default: <emphasis><parameter>add share command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add share command</parameter> = <literal>/usr/local/bin/addshare</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add user script</primary></indexterm><anchor id="ADDUSERSCRIPT"/><title>
add user script (G)
</title><variablelist><varlistentry><listitem>
<para>
This is the full pathname to a script that will be run <emphasis>AS ROOT</emphasis> by
<citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>
under special circumstances described below.
</para>
<para>
Normally, a Samba server requires that UNIX users are created for all users accessing
files on this server. For sites that use Windows NT account databases as their primary
user database creating these users and keeping the user list in sync with the Windows
NT PDC is an onerous task. This option allows smbd to create the required UNIX users
<emphasis>ON DEMAND</emphasis> when a user accesses the Samba server.
</para>
<para>
In order to use this option, <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> must <emphasis>NOT</emphasis> be set to
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = share</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ADDUSERSCRIPT" xlink:href="smb.conf.5.html#ADDUSERSCRIPT">add user script</link>
must be set to a full pathname for a script that will create a UNIX user given one argument of
<parameter moreinfo="none">%u</parameter>, which expands into the UNIX user name to create.
</para>
<para>
When the Windows user attempts to access the Samba server, at login (session setup in
the SMB protocol) time, <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> contacts the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWORDSERVER" xlink:href="smb.conf.5.html#PASSWORDSERVER">password server</link>
and attempts to authenticate the given user with the given password. If the authentication
succeeds then <literal>smbd</literal> attempts to find a UNIX user in the UNIX
password database to map the Windows user into. If this lookup fails, and
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ADDUSERSCRIPT" xlink:href="smb.conf.5.html#ADDUSERSCRIPT">add user script</link> is set then <literal>smbd</literal> will
call the specified script <emphasis>AS ROOT</emphasis>, expanding any
<parameter moreinfo="none">%u</parameter> argument to be the user name to create.
</para>
<para>
If this script successfully creates the user then <literal>smbd</literal> will
continue on as though the UNIX user already existed. In this way, UNIX users are dynamically created to
match existing Windows NT accounts.
</para>
<para>
See also <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWORDSERVER" xlink:href="smb.conf.5.html#PASSWORDSERVER">password server</link>,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEUSERSCRIPT" xlink:href="smb.conf.5.html#DELETEUSERSCRIPT">delete user script</link>.
</para>
<para>Default: <emphasis><parameter>add user script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add user script</parameter> = <literal>/usr/local/samba/bin/add_user %u</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>add user to group script</primary></indexterm><anchor id="ADDUSERTOGROUPSCRIPT"/><title>
add user to group script (G)
</title><variablelist><varlistentry><listitem>
<para>
Full path to the script that will be called when a user is added to a group using the Windows NT domain administration
tools. It will be run by <citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>
<emphasis>AS ROOT</emphasis>. Any <parameter moreinfo="none">%g</parameter> will be replaced with the group name and
any <parameter moreinfo="none">%u</parameter> will be replaced with the user name.
</para>
<para>
Note that the <literal>adduser</literal> command used in the example below does
not support the used syntax on all systems.
</para>
<para>Default: <emphasis><parameter>add user to group script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>add user to group script</parameter> = <literal>/usr/sbin/adduser %u %g</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>administrative share</primary></indexterm><anchor id="ADMINISTRATIVESHARE"/><title>
administrative share (S)
</title><variablelist><varlistentry><listitem>
<para>If this parameter is set to <constant>yes</constant> for
a share, then the share will be an administrative share. The Administrative
Shares are the default network shares created by all Windows NT-based
operating systems. These are shares like C$, D$ or ADMIN$. The type of these
shares is STYPE_DISKTREE_HIDDEN.</para>
<para>See the section below on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link> for more
information about this option.</para>
<para>Default: <emphasis><parameter>administrative share</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>admin users</primary></indexterm><anchor id="ADMINUSERS"/><title>
admin users (S)
</title><variablelist><varlistentry><listitem>
<para>This is a list of users who will be granted
administrative privileges on the share. This means that they
will do all file operations as the super-user (root).</para>
<para>You should use this option very carefully, as any user in
this list will be able to do anything they like on the share,
irrespective of file permissions.</para>
<para>This parameter will not work with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = share</link> in
Samba 3.0. This is by design.</para>
<para>Default: <emphasis><parameter>admin users</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>admin users</parameter> = <literal>jason</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>afs share</primary></indexterm><anchor id="AFSSHARE"/><title>
afs share (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether special AFS features are enabled
for this share. If enabled, it assumes that the directory exported via
the <parameter>path</parameter> parameter is a local AFS import. The
special AFS features include the attempt to hand-craft an AFS token
if you enabled --with-fake-kaserver in configure.
</para>
<para>Default: <emphasis><parameter>afs share</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>afs username map</primary></indexterm><anchor id="AFSUSERNAMEMAP"/><title>
afs username map (G)
</title><variablelist><varlistentry><listitem>
<para>If you are using the fake kaserver AFS feature, you might
want to hand-craft the usernames you are creating tokens for.
For example this is necessary if you have users from several domain
in your AFS Protection Database. One possible scheme to code users
as DOMAIN+User as it is done by winbind with the + as a separator.
</para>
<para>The mapped user name must contain the cell name to log into,
so without setting this parameter there will be no token.</para>
<para>Default: <emphasis><parameter>afs username map</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>afs username map</parameter> = <literal>%u@afs.samba.org</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>aio read size</primary></indexterm><anchor id="AIOREADSIZE"/><title>
aio read size (S)
</title><variablelist><varlistentry><listitem>
<para>If Samba has been built with asynchronous I/O support and this
integer parameter is set to non-zero value,
Samba will read from file asynchronously when size of request is bigger
than this value. Note that it happens only for non-chained and non-chaining
reads and when not using write cache.</para>
<para>Current implementation of asynchronous I/O in Samba 3.0 does support
only up to 10 outstanding asynchronous requests, read and write combined.</para>
<para>Related command: <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WRITECACHESIZE" xlink:href="smb.conf.5.html#WRITECACHESIZE">write cache size</link></para>
<para>Related command: <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="AIOWRITESIZE" xlink:href="smb.conf.5.html#AIOWRITESIZE">aio write size</link></para>
<para>Default: <emphasis><parameter>aio read size</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>aio read size</parameter> = <literal>16384
# Use asynchronous I/O for reads bigger than 16KB
request size</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>aio write size</primary></indexterm><anchor id="AIOWRITESIZE"/><title>
aio write size (S)
</title><variablelist><varlistentry><listitem>
<para>If Samba has been built with asynchronous I/O support and this
integer parameter is set to non-zero value,
Samba will write to file asynchronously when size of request is bigger
than this value. Note that it happens only for non-chained and non-chaining
reads and when not using write cache.</para>
<para>Current implementation of asynchronous I/O in Samba 3.0 does support
only up to 10 outstanding asynchronous requests, read and write combined.</para>
<para>Related command: <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WRITECACHESIZE" xlink:href="smb.conf.5.html#WRITECACHESIZE">write cache size</link></para>
<para>Related command: <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="AIOREADSIZE" xlink:href="smb.conf.5.html#AIOREADSIZE">aio read size</link></para>
<para>Default: <emphasis><parameter>aio write size</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>aio write size</parameter> = <literal>16384
# Use asynchronous I/O for writes bigger than 16KB
request size</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>algorithmic rid base</primary></indexterm><anchor id="ALGORITHMICRIDBASE"/><title>
algorithmic rid base (G)
</title><variablelist><varlistentry><listitem>
<para>This determines how Samba will use its
algorithmic mapping from uids/gid to the RIDs needed to construct
NT Security Identifiers.
</para>
<para>Setting this option to a larger value could be useful to sites
transitioning from WinNT and Win2k, as existing user and
group rids would otherwise clash with sytem users etc.
</para>
<para>All UIDs and GIDs must be able to be resolved into SIDs for
the correct operation of ACLs on the server. As such the algorithmic
mapping can't be 'turned off', but pushing it 'out of the way' should
resolve the issues. Users and groups can then be assigned 'low' RIDs
in arbitrary-rid supporting backends.
</para>
<para>Default: <emphasis><parameter>algorithmic rid base</parameter> = <literal>1000</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>algorithmic rid base</parameter> = <literal>100000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>allocation roundup size</primary></indexterm><anchor id="ALLOCATIONROUNDUPSIZE"/><title>
allocation roundup size (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter allows an administrator to tune the
allocation size reported to Windows clients. The default
size of 1Mb generally results in improved Windows client
performance. However, rounding the allocation size may cause
difficulties for some applications, e.g. MS Visual Studio.
If the MS Visual Studio compiler starts to crash with an
internal error, set this parameter to zero for this share.
</para>
<para>The integer parameter specifies the roundup size in bytes.</para>
<para>Default: <emphasis><parameter>allocation roundup size</parameter> = <literal>1048576</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>allocation roundup size</parameter> = <literal>0
# (to disable roundups)</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>allow trusted domains</primary></indexterm><anchor id="ALLOWTRUSTEDDOMAINS"/><title>
allow trusted domains (G)
</title><variablelist><varlistentry><listitem>
<para>
This option only takes effect when the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link> option is set to
<constant>server</constant>, <constant>domain</constant> or <constant>ads</constant>.
If it is set to no, then attempts to connect to a resource from
a domain or workgroup other than the one which smbd is running
in will fail, even if that domain is trusted by the remote server
doing the authentication.</para>
<para>This is useful if you only want your Samba server to
serve resources to users in the domain it is a member of. As
an example, suppose that there are two domains DOMA and DOMB. DOMB
is trusted by DOMA, which contains the Samba server. Under normal
circumstances, a user with an account in DOMB can then access the
resources of a UNIX account with the same account name on the
Samba server even if they do not have an account in DOMA. This
can make implementing a security boundary difficult.</para>
<para>Default: <emphasis><parameter>allow trusted domains</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>announce as</primary></indexterm><anchor id="ANNOUNCEAS"/><title>
announce as (G)
</title><variablelist><varlistentry><listitem>
<para>This specifies what type of server <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will announce itself as, to a network neighborhood browse
list. By default this is set to Windows NT. The valid options
are : "NT Server" (which can also be written as "NT"),
"NT Workstation", "Win95" or "WfW" meaning Windows NT Server,
Windows NT Workstation, Windows 95 and Windows for Workgroups
respectively. Do not change this parameter unless you have a
specific need to stop Samba appearing as an NT server as this
may prevent Samba servers from participating as browser servers
correctly.</para>
<para>Default: <emphasis><parameter>announce as</parameter> = <literal>NT Server</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>announce as</parameter> = <literal>Win95</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>announce version</primary></indexterm><anchor id="ANNOUNCEVERSION"/><title>
announce version (G)
</title><variablelist><varlistentry><listitem>
<para>This specifies the major and minor version numbers
that nmbd will use when announcing itself as a server. The default
is 4.9. Do not change this parameter unless you have a specific
need to set a Samba server to be a downlevel server.</para>
<para>Default: <emphasis><parameter>announce version</parameter> = <literal>4.9</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>announce version</parameter> = <literal>2.0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>auth methods</primary></indexterm><anchor id="AUTHMETHODS"/><title>
auth methods (G)
</title><variablelist><varlistentry><listitem>
<para>
This option allows the administrator to chose what authentication methods <literal>smbd</literal>
will use when authenticating a user. This option defaults to sensible values based on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link>.
This should be considered a developer option and used only in rare circumstances. In the majority (if not all)
of production servers, the default setting should be adequate.
</para>
<para>
Each entry in the list attempts to authenticate the user in turn, until
the user authenticates. In practice only one method will ever actually
be able to complete the authentication.
</para>
<para>
Possible options include <constant>guest</constant> (anonymous access),
<constant>sam</constant> (lookups in local list of accounts based on netbios
name or domain name), <constant>winbind</constant> (relay authentication requests
for remote users through winbindd), <constant>ntdomain</constant> (pre-winbindd
method of authentication for remote domain users; deprecated in favour of winbind method),
<constant>trustdomain</constant> (authenticate trusted users by contacting the
remote DC directly from smbd; deprecated in favour of winbind method).
</para>
<para>Default: <emphasis><parameter>auth methods</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>auth methods</parameter> = <literal>guest sam winbind</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>available</primary></indexterm><anchor id="AVAILABLE"/><title>
available (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter lets you "turn off" a service. If
<parameter moreinfo="none">available = no</parameter>, then <emphasis>ALL</emphasis>
attempts to connect to the service will fail. Such failures are
logged.</para>
<para>Default: <emphasis><parameter>available</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>bind interfaces only</primary></indexterm><anchor id="BINDINTERFACESONLY"/><title>
bind interfaces only (G)
</title><variablelist><varlistentry><listitem>
<para>This global parameter allows the Samba admin
to limit what interfaces on a machine will serve SMB requests. It
affects file service <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> and name service <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> in a slightly different ways.</para>
<para>
For name service it causes <literal>nmbd</literal> to bind to ports 137 and 138 on the
interfaces listed in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> parameter. <literal>nmbd</literal>
also binds to the "all addresses" interface (0.0.0.0) on ports 137 and 138 for the purposes of
reading broadcast messages. If this option is not set then <literal>nmbd</literal> will
service name requests on all of these sockets. If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="BINDINTERFACESONLY" xlink:href="smb.conf.5.html#BINDINTERFACESONLY">bind interfaces only</link> is set then
<literal>nmbd</literal> will check the source address of any packets coming in on the
broadcast sockets and discard any that don't match the broadcast addresses of the interfaces in the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> parameter list. As unicast packets are received on the other sockets it
allows <literal>nmbd</literal> to refuse to serve names to machines that send packets that
arrive through any interfaces not listed in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> list. IP Source address
spoofing does defeat this simple check, however, so it must not be used seriously as a security feature for
<literal>nmbd</literal>.
</para>
<para>
For file service it causes <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> to bind only to the interface list given in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> parameter. This restricts the networks that <literal>smbd</literal> will
serve, to packets coming in on those interfaces. Note that you should not use this parameter for machines that
are serving PPP or other intermittent or non-broadcast network interfaces as it will not cope with
non-permanent interfaces.
</para>
<para>
If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="BINDINTERFACESONLY" xlink:href="smb.conf.5.html#BINDINTERFACESONLY">bind interfaces only</link> is set and the network address
<emphasis>127.0.0.1</emphasis> is not added to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> parameter list
<citerefentry><refentrytitle>smbpasswd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> and
<citerefentry><refentrytitle>swat</refentrytitle> <manvolnum>8</manvolnum></citerefentry> may not work as
expected due to the reasons covered below.
</para>
<para>
To change a users SMB password, the <literal>smbpasswd</literal> by default connects to the
<emphasis>localhost - 127.0.0.1</emphasis> address as an SMB client to issue the password change request. If
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="BINDINTERFACESONLY" xlink:href="smb.conf.5.html#BINDINTERFACESONLY">bind interfaces only</link> is set then unless the network address
<emphasis>127.0.0.1</emphasis> is added to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link> parameter list then <literal> smbpasswd</literal> will fail to connect in it's default mode. <literal>smbpasswd</literal> can be forced to use the primary IP interface of the local host by using
its <citerefentry><refentrytitle>smbpasswd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> <parameter moreinfo="none">-r <replaceable>remote machine</replaceable></parameter> parameter, with <replaceable>remote
machine</replaceable> set to the IP name of the primary interface of the local host.
</para>
<para>
The <literal>swat</literal> status page tries to connect with <literal>smbd</literal> and <literal>nmbd</literal> at the address
<emphasis>127.0.0.1</emphasis> to determine if they are running. Not adding <emphasis>127.0.0.1</emphasis>
will cause <literal> smbd</literal> and <literal>nmbd</literal> to always show
"not running" even if they really are. This can prevent <literal> swat</literal>
from starting/stopping/restarting <literal>smbd</literal> and <literal>nmbd</literal>.
</para>
<para>Default: <emphasis><parameter>bind interfaces only</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>blocking locks</primary></indexterm><anchor id="BLOCKINGLOCKS"/><title>
blocking locks (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls the behavior
of <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when given a request by a client
to obtain a byte range lock on a region of an open file, and the
request has a time limit associated with it.</para>
<para>If this parameter is set and the lock range requested
cannot be immediately satisfied, samba will internally
queue the lock request, and periodically attempt to obtain
the lock until the timeout period expires.</para>
<para>If this parameter is set to <constant>no</constant>, then
samba will behave as previous versions of Samba would and
will fail the lock request immediately if the lock range
cannot be obtained.</para>
<para>Default: <emphasis><parameter>blocking locks</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>block size</primary></indexterm><anchor id="BLOCKSIZE"/><title>
block size (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls the behavior of <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when reporting disk free
sizes. By default, this reports a disk block size of 1024 bytes.
</para>
<para>Changing this parameter may have some effect on the
efficiency of client writes, this is not yet confirmed. This
parameter was added to allow advanced administrators to change
it (usually to a higher value) and test the effect it has on
client write performance without re-compiling the code. As this
is an experimental option it may be removed in a future release.
</para>
<para>Changing this option does not change the disk free reporting
size, just the block size unit reported to the client.
</para>
<para>Default: <emphasis><parameter>block size</parameter> = <literal>1024</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>block size</parameter> = <literal>4096</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>browsable</primary><see>browseable</see></indexterm><title>
<anchor id="BROWSABLE"/>browsable
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="BROWSEABLE">browseable</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>browseable</primary></indexterm><anchor id="BROWSEABLE"/><title>
browseable (S)
</title><variablelist><varlistentry><listitem>
<para>This controls whether this share is seen in
the list of available shares in a net view and in the browse list.</para>
<para>Default: <emphasis><parameter>browseable</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>browse list</primary></indexterm><anchor id="BROWSELIST"/><title>
browse list (G)
</title><variablelist><varlistentry><listitem>
<para>This controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will serve a browse list to
a client doing a <literal>NetServerEnum</literal> call. Normally
set to <constant>yes</constant>. You should never need to change
this.</para>
<para>Default: <emphasis><parameter>browse list</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>casesignames</primary><see>case sensitive</see></indexterm><title>
<anchor id="CASESIGNAMES"/>casesignames
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="CASESENSITIVE">case sensitive</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>case sensitive</primary></indexterm><anchor id="CASESENSITIVE"/><title>
case sensitive (S)
</title><variablelist><varlistentry><listitem>
<para>See the discussion in the section <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NAMEMANGLING" xlink:href="smb.conf.5.html#NAMEMANGLING">name mangling</link>.</para>
<para>Default: <emphasis><parameter>case sensitive</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>change notify</primary></indexterm><anchor id="CHANGENOTIFY"/><title>
change notify (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies whether Samba should reply
to a client's file change notify requests.
</para>
<para>You should never need to change this parameter</para>
<para>Default: <emphasis><parameter>change notify</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>change share command</primary></indexterm><anchor id="CHANGESHARECOMMAND"/><title>
change share command (G)
</title><variablelist><varlistentry><listitem>
<para>
Samba 2.2.0 introduced the ability to dynamically add and delete shares via the Windows NT 4.0 Server
Manager. The <parameter moreinfo="none">change share command</parameter> is used to define an external
program or script which will modify an existing service definition in <filename moreinfo="none">smb.conf</filename>. In order to successfully execute the <parameter moreinfo="none">change
share command</parameter>, <literal>smbd</literal> requires that the administrator be
connected using a root account (i.e. uid == 0).
</para>
<para>
If the connected account has <literal>SeDiskOperatorPrivilege</literal>, scripts defined in
<parameter moreinfo="none">change share</parameter> parameter are executed as root.
</para>
<para>
When executed, <literal>smbd</literal> will automatically invoke the
<parameter moreinfo="none">change share command</parameter> with five parameters.
</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">configFile</parameter> - the location
of the global <filename moreinfo="none">smb.conf</filename> file.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">shareName</parameter> - the name of the new
share.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">pathName</parameter> - path to an **existing**
directory on disk.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">comment</parameter> - comment string to associate
with the new share.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">max
connections</parameter>
Number of maximum simultaneous connections to this
share.
</para>
</listitem>
</itemizedlist>
<para>
This parameter is only used modify existing file shares definitions. To modify
printer shares, use the "Printers..." folder as seen when browsing the Samba host.
</para>
<para>Default: <emphasis><parameter>change share command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>change share command</parameter> = <literal>/usr/local/bin/addshare</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>check password script</primary></indexterm><anchor id="CHECKPASSWORDSCRIPT"/><title>
check password script (G)
</title><variablelist><varlistentry><listitem>
<para>The name of a program that can be used to check password
complexity. The password is sent to the program's standard input.</para>
<para>The program must return 0 on a good password, or any other value
if the password is bad.
In case the password is considered weak (the program does not return 0) the
user will be notified and the password change will fail.</para>
<para>Note: In the example directory is a sample program called <literal>crackcheck</literal>
that uses cracklib to check the password quality.</para>
<para>Default: <emphasis><parameter>check password script</parameter> = <literal>Disabled</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>check password script</parameter> = <literal>check password script = /usr/local/sbin/crackcheck</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client lanman auth</primary></indexterm><anchor id="CLIENTLANMANAUTH"/><title>
client lanman auth (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines whether or not <citerefentry><refentrytitle>smbclient</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> and other samba client
tools will attempt to authenticate itself to servers using the
weaker LANMAN password hash. If disabled, only server which support NT
password hashes (e.g. Windows NT/2000, Samba, etc... but not
Windows 95/98) will be able to be connected from the Samba client.</para>
<para>The LANMAN encrypted response is easily broken, due to it's
case-insensitive nature, and the choice of algorithm. Clients
without Windows 95/98 servers are advised to disable
this option. </para>
<para>Disabling this option will also disable the <literal>client plaintext auth</literal> option</para>
<para>Likewise, if the <literal>client ntlmv2
auth</literal> parameter is enabled, then only NTLMv2 logins will be
attempted.</para>
<para>Default: <emphasis><parameter>client lanman auth</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client ldap sasl wrapping</primary></indexterm><anchor id="CLIENTLDAPSASLWRAPPING"/><title>
client ldap sasl wrapping (G)
</title><variablelist><varlistentry><listitem>
<para>
The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CLIENTLDAPSASLWRAPPING" xlink:href="smb.conf.5.html#CLIENTLDAPSASLWRAPPING">client ldap sasl wrapping</link> defines whether
ldap traffic will be signed or signed and encrypted (sealed).
Possible values are <emphasis>plain</emphasis>, <emphasis>sign</emphasis>
and <emphasis>seal</emphasis>.
</para>
<para>
The values <emphasis>sign</emphasis> and <emphasis>seal</emphasis> are
only available if Samba has been compiled against a modern
OpenLDAP version (2.3.x or higher).
</para>
<para>
This option is needed in the case of Domain Controllers enforcing
the usage of signed LDAP connections (e.g. Windows 2000 SP3 or higher).
LDAP sign and seal can be controlled with the registry key
"<literal>HKLM\System\CurrentControlSet\Services\</literal>
<literal>NTDS\Parameters\LDAPServerIntegrity</literal>"
on the Windows server side.
</para>
<para>
Depending on the used KRB5 library (MIT and older Heimdal versions)
it is possible that the message "integrity only" is not supported.
In this case, <emphasis>sign</emphasis> is just an alias for
<emphasis>seal</emphasis>.
</para>
<para>
The default value is <emphasis>plain</emphasis> which is not irritable
to KRB5 clock skew errors. That implies synchronizing the time
with the KDC in the case of using <emphasis>sign</emphasis> or
<emphasis>seal</emphasis>.
</para>
<para>Default: <emphasis><parameter>client ldap sasl wrapping</parameter> = <literal>plain</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client ntlmv2 auth</primary></indexterm><anchor id="CLIENTNTLMV2AUTH"/><title>
client ntlmv2 auth (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines whether or not <citerefentry><refentrytitle>smbclient</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will attempt to
authenticate itself to servers using the NTLMv2 encrypted password
response.</para>
<para>If enabled, only an NTLMv2 and LMv2 response (both much more
secure than earlier versions) will be sent. Many servers
(including NT4 < SP4, Win9x and Samba 2.2) are not compatible with
NTLMv2. </para>
<para>Similarly, if enabled, NTLMv1, <literal>client lanman auth</literal> and <literal>client plaintext auth</literal>
authentication will be disabled. This also disables share-level
authentication. </para>
<para>If disabled, an NTLM response (and possibly a LANMAN response)
will be sent by the client, depending on the value of <literal>client lanman auth</literal>. </para>
<para>Note that some sites (particularly
those following 'best practice' security polices) only allow NTLMv2
responses, and not the weaker LM or NTLM.</para>
<para>Default: <emphasis><parameter>client ntlmv2 auth</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client plaintext auth</primary></indexterm><anchor id="CLIENTPLAINTEXTAUTH"/><title>
client plaintext auth (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies whether a client should send a plaintext
password if the server does not support encrypted passwords.</para>
<para>Default: <emphasis><parameter>client plaintext auth</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client schannel</primary></indexterm><anchor id="CLIENTSCHANNEL"/><title>
client schannel (G)
</title><variablelist><varlistentry><listitem>
<para>
This controls whether the client offers or even demands the use of the netlogon schannel.
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CLIENTSCHANNEL" xlink:href="smb.conf.5.html#CLIENTSCHANNEL">client schannel = no</link> does not offer the schannel,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CLIENTSCHANNEL" xlink:href="smb.conf.5.html#CLIENTSCHANNEL">client schannel = auto</link> offers the schannel but does not
enforce it, and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CLIENTSCHANNEL" xlink:href="smb.conf.5.html#CLIENTSCHANNEL">client schannel = yes</link> denies access
if the server is not able to speak netlogon schannel.
</para>
<para>Default: <emphasis><parameter>client schannel</parameter> = <literal>auto</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>client schannel</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client signing</primary></indexterm><anchor id="CLIENTSIGNING"/><title>
client signing (G)
</title><variablelist><varlistentry><listitem>
<para>This controls whether the client offers or requires
the server it talks to to use SMB signing. Possible values
are <emphasis>auto</emphasis>, <emphasis>mandatory</emphasis>
and <emphasis>disabled</emphasis>.
</para>
<para>When set to auto, SMB signing is offered, but not enforced.
When set to mandatory, SMB signing is required and if set
to disabled, SMB signing is not offered either.
</para>
<para>Default: <emphasis><parameter>client signing</parameter> = <literal>auto</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>client use spnego</primary></indexterm><anchor id="CLIENTUSESPNEGO"/><title>
client use spnego (G)
</title><variablelist><varlistentry><listitem>
<para> This variable controls whether Samba clients will try
to use Simple and Protected NEGOciation (as specified by rfc2478) with
supporting servers (including WindowsXP, Windows2000 and Samba
3.0) to agree upon an authentication
mechanism. This enables Kerberos authentication in particular.</para>
<para>Default: <emphasis><parameter>client use spnego</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>cluster addresses</primary></indexterm><anchor id="CLUSTERADDRESSES"/><title>
cluster addresses (G)
</title><variablelist><varlistentry><listitem>
<para>With this parameter you can add additional addresses
nmbd will register with a WINS server. These addresses are not
necessarily present on all nodes simultaneously, but they will
be registered with the WINS server so that clients can contact
any of the nodes.
</para>
<para>Default: <emphasis><parameter>cluster addresses</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>cluster addresses</parameter> = <literal>10.0.0.1 10.0.0.2 10.0.0.3</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>clustering</primary></indexterm><anchor id="CLUSTERING"/><title>
clustering (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies whether Samba should contact
ctdb for accessing its tdb files and use ctdb as a backend
for its messaging backend.
</para>
<para>Set this parameter to <literal>yes</literal> only if
you have a cluster setup with ctdb running.
</para>
<para>Default: <emphasis><parameter>clustering</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>comment</primary></indexterm><anchor id="COMMENT"/><title>
comment (S)
</title><variablelist><varlistentry><listitem>
<para>This is a text field that is seen next to a share
when a client does a queries the server, either via the network
neighborhood or via <literal>net view</literal> to list what shares
are available.</para>
<para>If you want to set the string that is displayed next to the
machine name then see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SERVERSTRING" xlink:href="smb.conf.5.html#SERVERSTRING">server string</link> parameter.</para>
<para>Default: <emphasis><parameter>comment</parameter> = <literal>
# No comment</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>comment</parameter> = <literal>Fred's Files</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>config backend</primary></indexterm><anchor id="CONFIGBACKEND"/><title>
config backend (G)
</title><variablelist><varlistentry><listitem>
<para>
This controls the backend for storing the configuration.
Possible values are <emphasis>file</emphasis> (the default)
and <emphasis>registry</emphasis>.
When <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CONFIGBACKEND" xlink:href="smb.conf.5.html#CONFIGBACKEND">config backend = registry</link>
is encountered while loading <emphasis>smb.conf</emphasis>,
the configuration read so far is dropped and the global
options are read from registry instead. So this triggers a
registry only configuration. Share definitions are not read
immediately but instead <parameter>registry
shares</parameter> is set to <emphasis>yes</emphasis>.
</para>
<para>
Note: This option can not be set inside the registry
configuration itself.
</para>
<para>Default: <emphasis><parameter>config backend</parameter> = <literal>file</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>config backend</parameter> = <literal>registry</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>config file</primary></indexterm><anchor id="CONFIGFILE"/><title>
config file (G)
</title><variablelist><varlistentry><listitem>
<para>This allows you to override the config file
to use, instead of the default (usually <filename moreinfo="none">smb.conf</filename>).
There is a chicken and egg problem here as this option is set
in the config file!</para>
<para>For this reason, if the name of the config file has changed
when the parameters are loaded then it will reload them from
the new config file.</para>
<para>This option takes the usual substitutions, which can
be very useful.</para>
<para>If the config file doesn't exist then it won't be loaded
(allowing you to special case the config files of just a few
clients).</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>config file</parameter> = <literal>/usr/local/samba/lib/smb.conf.%m</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>copy</primary></indexterm><anchor id="COPY"/><title>
copy (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter allows you to "clone" service
entries. The specified service is simply duplicated under the
current service's name. Any parameters specified in the current
section will override those in the section being copied.</para>
<para>This feature lets you set up a 'template' service and
create similar services easily. Note that the service being
copied must occur earlier in the configuration file than the
service doing the copying.</para>
<para>Default: <emphasis><parameter>copy</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>copy</parameter> = <literal>otherservice</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>create mode</primary><see>create mask</see></indexterm><title>
<anchor id="CREATEMODE"/>create mode
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="CREATEMASK">create mask</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>create mask</primary></indexterm><anchor id="CREATEMASK"/><title>
create mask (S)
</title><variablelist><varlistentry><listitem>
<para>
When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to
UNIX permissions, and the resulting UNIX mode is then bit-wise 'AND'ed with this parameter. This parameter may
be thought of as a bit-wise MASK for the UNIX modes of a file. Any bit <emphasis>not</emphasis> set here will
be removed from the modes set on a file when it is created.
</para>
<para>
The default value of this parameter removes the <literal>group</literal> and <literal>other</literal>
write and execute bits from the UNIX modes.
</para>
<para>
Following this Samba will bit-wise 'OR' the UNIX mode created from this parameter with the value of the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCECREATEMODE" xlink:href="smb.conf.5.html#FORCECREATEMODE">force create mode</link> parameter which is set to 000 by default.
</para>
<para>
This parameter does not affect directory masks. See the parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DIRECTORYMASK" xlink:href="smb.conf.5.html#DIRECTORYMASK">directory mask</link>
for details.
</para>
<para>
Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the
administrator wishes to enforce a mask on access control lists also, they need to set the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITYMASK" xlink:href="smb.conf.5.html#SECURITYMASK">security mask</link>.
</para>
<para>Default: <emphasis><parameter>create mask</parameter> = <literal>0744</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>create mask</parameter> = <literal>0775</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>csc policy</primary></indexterm><anchor id="CSCPOLICY"/><title>
csc policy (S)
</title><variablelist><varlistentry><listitem>
<para>
This stands for <emphasis>client-side caching policy</emphasis>, and specifies how clients capable of offline
caching will cache the files in the share. The valid values are: manual, documents, programs, disable.
</para>
<para>
These values correspond to those used on Windows servers.
</para>
<para>
For example, shares containing roaming profiles can have offline caching disabled using
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CSCPOLICY" xlink:href="smb.conf.5.html#CSCPOLICY">csc policy = disable</link>.
</para>
<para>Default: <emphasis><parameter>csc policy</parameter> = <literal>manual</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>csc policy</parameter> = <literal>programs</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ctdbd socket</primary></indexterm><anchor id="CTDBDSOCKET"/><title>
ctdbd socket (G)
</title><variablelist><varlistentry><listitem>
<para>If you set <literal>clustering=yes</literal>,
you need to tell Samba where ctdbd listens on its unix domain
socket. The default path as of ctdb 1.0 is /tmp/ctdb.socket which
you have to explicitly set for Samba in smb.conf.
</para>
<para>Default: <emphasis><parameter>ctdbd socket</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ctdbd socket</parameter> = <literal>/tmp/ctdb.socket</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>cups options</primary></indexterm><anchor id="CUPSOPTIONS"/><title>
cups options (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is only applicable if <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link> is
set to <constant>cups</constant>. Its value is a free form string of options
passed directly to the cups library.
</para>
<para>
You can pass any generic print option known to CUPS (as listed
in the CUPS "Software Users' Manual"). You can also pass any printer
specific option (as listed in "lpoptions -d printername -l")
valid for the target queue.
Multiple parameters should be space-delimited name/value pairs according to
the PAPI text option ABNF specification. Collection values
("name={a=... b=... c=...}") are stored with the curley brackets intact.
</para>
<para>
You should set this parameter to <constant>raw</constant> if your CUPS server
<filename>error_log</filename> file contains messages such as
"Unsupported format 'application/octet-stream'" when printing from a Windows client
through Samba. It is no longer necessary to enable
system wide raw printing in <filename>/etc/cups/mime.{convs,types}</filename>.
</para>
<para>Default: <emphasis><parameter>cups options</parameter> = <literal>""</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>cups options</parameter> = <literal>"raw media=a4"</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>cups server</primary></indexterm><anchor id="CUPSSERVER"/><title>
cups server (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is only applicable if <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link> is set to <constant>cups</constant>.
</para>
<para>
If set, this option overrides the ServerName option in the CUPS <filename>client.conf</filename>. This is
necessary if you have virtual samba servers that connect to different CUPS daemons.
</para>
<para>Optionally, a port can be specified by separating the server name
and port number with a colon. If no port was specified,
the default port for IPP (631) will be used.
</para>
<para>Default: <emphasis><parameter>cups server</parameter> = <literal>""</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>cups server</parameter> = <literal>mycupsserver</literal>
</emphasis>
</para><para>Example: <emphasis><parameter>cups server</parameter> = <literal>mycupsserver:1631</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>deadtime</primary></indexterm><anchor id="DEADTIME"/><title>
deadtime (G)
</title><variablelist><varlistentry><listitem>
<para>The value of the parameter (a decimal integer)
represents the number of minutes of inactivity before a connection
is considered dead, and it is disconnected. The deadtime only takes
effect if the number of open files is zero.</para>
<para>This is useful to stop a server's resources being
exhausted by a large number of inactive connections.</para>
<para>Most clients have an auto-reconnect feature when a
connection is broken so in most cases this parameter should be
transparent to users.</para>
<para>Using this parameter with a timeout of a few minutes
is recommended for most systems.</para>
<para>A deadtime of zero indicates that no auto-disconnection
should be performed.</para>
<para>Default: <emphasis><parameter>deadtime</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>deadtime</parameter> = <literal>15</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debug class</primary></indexterm><anchor id="DEBUGCLASS"/><title>
debug class (G)
</title><variablelist><varlistentry><listitem>
<para>
With this boolean parameter enabled, the debug class (DBGC_CLASS)
will be displayed in the debug header.
</para>
<para>
For more information about currently available debug classes, see
section about <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGLEVEL" xlink:href="smb.conf.5.html#LOGLEVEL">log level</link>.
</para>
<para>Default: <emphasis><parameter>debug class</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debug hires timestamp</primary></indexterm><anchor id="DEBUGHIRESTIMESTAMP"/><title>
debug hires timestamp (G)
</title><variablelist><varlistentry><listitem>
<para>
Sometimes the timestamps in the log messages are needed with a resolution of higher that seconds, this
boolean parameter adds microsecond resolution to the timestamp message header when turned on.
</para>
<para>
Note that the parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGTIMESTAMP" xlink:href="smb.conf.5.html#DEBUGTIMESTAMP">debug timestamp</link> must be on for this to have an effect.
</para>
<para>Default: <emphasis><parameter>debug hires timestamp</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debug pid</primary></indexterm><anchor id="DEBUGPID"/><title>
debug pid (G)
</title><variablelist><varlistentry><listitem>
<para>
When using only one log file for more then one forked <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>-process there may be hard to follow which process outputs which
message. This boolean parameter is adds the process-id to the timestamp message headers in the
logfile when turned on.
</para>
<para>
Note that the parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGTIMESTAMP" xlink:href="smb.conf.5.html#DEBUGTIMESTAMP">debug timestamp</link> must be on for this to have an effect.
</para>
<para>Default: <emphasis><parameter>debug pid</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debug prefix timestamp</primary></indexterm><anchor id="DEBUGPREFIXTIMESTAMP"/><title>
debug prefix timestamp (G)
</title><variablelist><varlistentry><listitem>
<para>
With this option enabled, the timestamp message header is prefixed to the debug message without the
filename and function information that is included with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGTIMESTAMP" xlink:href="smb.conf.5.html#DEBUGTIMESTAMP">debug timestamp</link>
parameter. This gives timestamps to the messages without adding an additional line.
</para>
<para>
Note that this parameter overrides the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGTIMESTAMP" xlink:href="smb.conf.5.html#DEBUGTIMESTAMP">debug timestamp</link> parameter.
</para>
<para>Default: <emphasis><parameter>debug prefix timestamp</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>timestamp logs</primary><see>debug timestamp</see></indexterm><title>
<anchor id="TIMESTAMPLOGS"/>timestamp logs
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="DEBUGTIMESTAMP">debug timestamp</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>debug timestamp</primary></indexterm><anchor id="DEBUGTIMESTAMP"/><title>
debug timestamp (G)
</title><variablelist><varlistentry><listitem>
<para>
Samba debug log messages are timestamped by default. If you are running at a high
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGLEVEL" xlink:href="smb.conf.5.html#DEBUGLEVEL">debug level</link> these timestamps can be distracting. This
boolean parameter allows timestamping to be turned off.
</para>
<para>Default: <emphasis><parameter>debug timestamp</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debug uid</primary></indexterm><anchor id="DEBUGUID"/><title>
debug uid (G)
</title><variablelist><varlistentry><listitem>
<para>
Samba is sometimes run as root and sometime run as the connected user, this boolean parameter inserts the
current euid, egid, uid and gid to the timestamp message headers in the log file if turned on.
</para>
<para>
Note that the parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGTIMESTAMP" xlink:href="smb.conf.5.html#DEBUGTIMESTAMP">debug timestamp</link> must be on for this to have an effect.
</para>
<para>Default: <emphasis><parameter>debug uid</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>default case</primary></indexterm><anchor id="DEFAULTCASE"/><title>
default case (S)
</title><variablelist><varlistentry><listitem>
<para>See the section on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NAMEMANGLING" xlink:href="smb.conf.5.html#NAMEMANGLING">name mangling</link>.
Also note the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SHORTPRESERVECASE" xlink:href="smb.conf.5.html#SHORTPRESERVECASE">short preserve case</link> parameter.</para>
<para>Default: <emphasis><parameter>default case</parameter> = <literal>lower</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>default devmode</primary></indexterm><anchor id="DEFAULTDEVMODE"/><title>
default devmode (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter is only applicable to <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTABLE" xlink:href="smb.conf.5.html#PRINTABLE">printable</link> services.
When smbd is serving Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba
server has a Device Mode which defines things such as paper size and
orientation and duplex settings. The device mode can only correctly be
generated by the printer driver itself (which can only be executed on a
Win32 platform). Because smbd is unable to execute the driver code
to generate the device mode, the default behavior is to set this field
to NULL.
</para>
<para>Most problems with serving printer drivers to Windows NT/2k/XP clients
can be traced to a problem with the generated device mode. Certain drivers
will do things such as crashing the client's Explorer.exe with a NULL devmode.
However, other printer drivers can cause the client's spooler service
(spoolsv.exe) to die if the devmode was not created by the driver itself
(i.e. smbd generates a default devmode).
</para>
<para>This parameter should be used with care and tested with the printer
driver in question. It is better to leave the device mode to NULL
and let the Windows client set the correct values. Because drivers do not
do this all the time, setting <literal>default devmode = yes</literal>
will instruct smbd to generate a default one.
</para>
<para>For more information on Windows NT/2k printing and Device Modes,
see the <ulink url="http://msdn.microsoft.com/">MSDN documentation</ulink>.
</para>
<para>Default: <emphasis><parameter>default devmode</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>default</primary><see>default service</see></indexterm><title>
<anchor id="DEFAULT"/>default
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="DEFAULTSERVICE">default service</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>default service</primary></indexterm><anchor id="DEFAULTSERVICE"/><title>
default service (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the name of a service
which will be connected to if the service actually requested cannot
be found. Note that the square brackets are <emphasis>NOT</emphasis>
given in the parameter value (see example below).</para>
<para>There is no default value for this parameter. If this
parameter is not given, attempting to connect to a nonexistent
service results in an error.</para>
<para>
Typically the default service would be a <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READ-ONLY" xlink:href="smb.conf.5.html#READ-ONLY">read-only</link> service.</para> <para>Also note that the apparent service name will be changed to equal
that of the requested service, this is very useful as it allows you to use macros like <parameter moreinfo="none">%S</parameter> to make a wildcard service.
</para>
<para>Note also that any "_" characters in the name of the service
used in the default service will get mapped to a "/". This allows for
interesting things.</para>
<para>Default: <emphasis><parameter>default service</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>default service</parameter> = <literal>pub</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>defer sharing violations</primary></indexterm><anchor id="DEFERSHARINGVIOLATIONS"/><title>
defer sharing violations (G)
</title><variablelist><varlistentry><listitem>
<para>
Windows allows specifying how a file will be shared with
other processes when it is opened. Sharing violations occur when
a file is opened by a different process using options that violate
the share settings specified by other processes. This parameter causes
smbd to act as a Windows server does, and defer returning a "sharing
violation" error message for up to one second, allowing the client
to close the file causing the violation in the meantime.
</para>
<para>UNIX by default does not have this behaviour.</para>
<para>
There should be no reason to turn off this parameter, as it is
designed to enable Samba to more correctly emulate Windows.
</para>
<para>Default: <emphasis><parameter>defer sharing violations</parameter> = <literal>True</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete group script</primary></indexterm><anchor id="DELETEGROUPSCRIPT"/><title>
delete group script (G)
</title><variablelist><varlistentry><listitem>
<para>This is the full pathname to a script that will
be run <emphasis>AS ROOT</emphasis> <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when a group is requested to be deleted.
It will expand any <parameter moreinfo="none">%g</parameter> to the group name passed.
This script is only useful for installations using the Windows NT domain administration tools.
</para>
<para>Default: <emphasis><parameter>delete group script</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>deleteprinter command</primary></indexterm><anchor id="DELETEPRINTERCOMMAND"/><title>
deleteprinter command (G)
</title><variablelist><varlistentry><listitem>
<para>With the introduction of MS-RPC based printer
support for Windows NT/2000 clients in Samba 2.2, it is now
possible to delete a printer at run time by issuing the
DeletePrinter() RPC call.</para>
<para>For a Samba host this means that the printer must be
physically deleted from the underlying printing system. The
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEPRINTERCOMMAND" xlink:href="smb.conf.5.html#DELETEPRINTERCOMMAND">deleteprinter command</link> defines a script to be run which
will perform the necessary operations for removing the printer
from the print system and from <filename moreinfo="none">smb.conf</filename>.
</para>
<para>The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEPRINTERCOMMAND" xlink:href="smb.conf.5.html#DELETEPRINTERCOMMAND">deleteprinter command</link> is
automatically called with only one parameter: <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTERNAME" xlink:href="smb.conf.5.html#PRINTERNAME">printer name</link>.
</para>
<para>Once the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEPRINTERCOMMAND" xlink:href="smb.conf.5.html#DELETEPRINTERCOMMAND">deleteprinter command</link> has
been executed, <literal>smbd</literal> will reparse the <filename moreinfo="none">
smb.conf</filename> to check that the associated printer no longer exists.
If the sharename is still valid, then <literal>smbd
</literal> will return an ACCESS_DENIED error to the client.</para>
<para>Default: <emphasis><parameter>deleteprinter command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>deleteprinter command</parameter> = <literal>/usr/bin/removeprinter</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete readonly</primary></indexterm><anchor id="DELETEREADONLY"/><title>
delete readonly (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter allows readonly files to be deleted.
This is not normal DOS semantics, but is allowed by UNIX.</para>
<para>This option may be useful for running applications such
as rcs, where UNIX file ownership prevents changing file
permissions, and DOS semantics prevent deletion of a read only file.</para>
<para>Default: <emphasis><parameter>delete readonly</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete share command</primary></indexterm><anchor id="DELETESHARECOMMAND"/><title>
delete share command (G)
</title><variablelist><varlistentry><listitem>
<para>
Samba 2.2.0 introduced the ability to dynamically add and delete shares via the Windows NT 4.0 Server
Manager. The <parameter moreinfo="none">delete share command</parameter> is used to define an external
program or script which will remove an existing service definition from
<filename moreinfo="none">smb.conf</filename>. In order to successfully execute the
<parameter moreinfo="none">delete share command</parameter>, <literal>smbd</literal>
requires that the administrator be connected using a root account (i.e. uid == 0).
</para>
<para>
If the connected account has <literal>SeDiskOperatorPrivilege</literal>, scripts defined in
<parameter moreinfo="none">change share</parameter> parameter are executed as root.
</para>
<para>
When executed, <literal>smbd</literal> will automatically invoke the
<parameter moreinfo="none">delete share command</parameter> with two parameters.
</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">configFile</parameter> - the location
of the global <filename moreinfo="none">smb.conf</filename> file.
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">shareName</parameter> - the name of
the existing service.
</para>
</listitem>
</itemizedlist>
<para>
This parameter is only used to remove file shares. To delete printer shares,
see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEPRINTERCOMMAND" xlink:href="smb.conf.5.html#DELETEPRINTERCOMMAND">deleteprinter command</link>.
</para>
<para>Default: <emphasis><parameter>delete share command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>delete share command</parameter> = <literal>/usr/local/bin/delshare</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete user from group script</primary></indexterm><anchor id="DELETEUSERFROMGROUPSCRIPT"/><title>
delete user from group script (G)
</title><variablelist><varlistentry><listitem>
<para>Full path to the script that will be called when
a user is removed from a group using the Windows NT domain administration
tools. It will be run by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> <emphasis>AS ROOT</emphasis>.
Any <parameter moreinfo="none">%g</parameter> will be replaced with the group name and
any <parameter moreinfo="none">%u</parameter> will be replaced with the user name.
</para>
<para>Default: <emphasis><parameter>delete user from group script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>delete user from group script</parameter> = <literal>/usr/sbin/deluser %u %g</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete user script</primary></indexterm><anchor id="DELETEUSERSCRIPT"/><title>
delete user script (G)
</title><variablelist><varlistentry><listitem>
<para>This is the full pathname to a script that will
be run by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when managing users
with remote RPC (NT) tools.
</para>
<para>This script is called when a remote client removes a user
from the server, normally using 'User Manager for Domains' or
<literal>rpcclient</literal>.</para>
<para>This script should delete the given UNIX username.</para>
<para>Default: <emphasis><parameter>delete user script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>delete user script</parameter> = <literal>/usr/local/samba/bin/del_user %u</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>delete veto files</primary></indexterm><anchor id="DELETEVETOFILES"/><title>
delete veto files (S)
</title><variablelist><varlistentry><listitem>
<para>This option is used when Samba is attempting to
delete a directory that contains one or more vetoed directories
(see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="VETOFILES" xlink:href="smb.conf.5.html#VETOFILES">veto files</link>
option). If this option is set to <constant>no</constant> (the default) then if a vetoed
directory contains any non-vetoed files or directories then the
directory delete will fail. This is usually what you want.</para>
<para>If this option is set to <constant>yes</constant>, then Samba
will attempt to recursively delete any files and directories within
the vetoed directory. This can be useful for integration with file
serving systems such as NetAtalk which create meta-files within
directories you might normally veto DOS/Windows users from seeing
(e.g. <filename moreinfo="none">.AppleDouble</filename>)</para>
<para>Setting <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEVETOFILES" xlink:href="smb.conf.5.html#DELETEVETOFILES">delete veto files = yes</link> allows these
directories to be transparently deleted when the parent directory
is deleted (so long as the user has permissions to do so).</para>
<para>Default: <emphasis><parameter>delete veto files</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dfree cache time</primary></indexterm><anchor id="DFREECACHETIME"/><title>
dfree cache time (S)
</title><variablelist><varlistentry><listitem>
<para>
The <parameter moreinfo="none">dfree cache time</parameter> should only be used on systems where a problem
occurs with the internal disk space calculations. This has been known to happen with Ultrix, but may occur
with other operating systems. The symptom that was seen was an error of "Abort Retry Ignore" at the
end of each directory listing.
</para>
<para>
This is a new parameter introduced in Samba version 3.0.21. It specifies in seconds the time that smbd will
cache the output of a disk free query. If set to zero (the default) no caching is done. This allows a heavily
loaded server to prevent rapid spawning of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DFREECOMMAND" xlink:href="smb.conf.5.html#DFREECOMMAND">dfree command</link> scripts increasing the load.
</para>
<para>
By default this parameter is zero, meaning no caching will be done.
</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>dfree cache time</parameter> = <literal>dfree cache time = 60</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dfree command</primary></indexterm><anchor id="DFREECOMMAND"/><title>
dfree command (S)
</title><variablelist><varlistentry><listitem>
<para>
The <parameter moreinfo="none">dfree command</parameter> setting should only be used on systems where a
problem occurs with the internal disk space calculations. This has been known to happen with Ultrix, but may
occur with other operating systems. The symptom that was seen was an error of "Abort Retry Ignore"
at the end of each directory listing.
</para>
<para>
This setting allows the replacement of the internal routines to calculate the total disk space and amount
available with an external routine. The example below gives a possible script that might fulfill this
function.
</para>
<para>
In Samba version 3.0.21 this parameter has been changed to be a per-share parameter, and in addition the
parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DFREECACHETIME" xlink:href="smb.conf.5.html#DFREECACHETIME">dfree cache time</link> was added to allow the output of this script to be cached
for systems under heavy load.
</para>
<para>
The external program will be passed a single parameter indicating a directory in the filesystem being queried.
This will typically consist of the string <filename moreinfo="none">./</filename>. The script should return
two integers in ASCII. The first should be the total disk space in blocks, and the second should be the number
of available blocks. An optional third return value can give the block size in bytes. The default blocksize is
1024 bytes.
</para>
<para>
Note: Your script should <emphasis>NOT</emphasis> be setuid or setgid and should be owned by (and writeable
only by) root!
</para>
<para>
Where the script dfree (which must be made executable) could be:
<programlisting format="linespecific">
#!/bin/sh
df $1 | tail -1 | awk '{print $(NF-4),$(NF-2)}'
</programlisting>
or perhaps (on Sys V based systems):
<programlisting format="linespecific">
#!/bin/sh
/usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
</programlisting>
Note that you may have to replace the command names with full path names on some systems.
</para>
<para>
By default internal routines for determining the disk capacity and remaining space will be used.
</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>dfree command</parameter> = <literal>/usr/local/samba/bin/dfree</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>directory mode</primary><see>directory mask</see></indexterm><title>
<anchor id="DIRECTORYMODE"/>directory mode
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="DIRECTORYMASK">directory mask</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>directory mask</primary></indexterm><anchor id="DIRECTORYMASK"/><title>
directory mask (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter is the octal modes which are
used when converting DOS modes to UNIX modes when creating UNIX
directories.</para>
<para>When a directory is created, the necessary permissions are
calculated according to the mapping from DOS modes to UNIX permissions,
and the resulting UNIX mode is then bit-wise 'AND'ed with this
parameter. This parameter may be thought of as a bit-wise MASK for
the UNIX modes of a directory. Any bit <emphasis>not</emphasis> set
here will be removed from the modes set on a directory when it is
created.</para>
<para>The default value of this parameter removes the 'group'
and 'other' write bits from the UNIX mode, allowing only the
user who owns the directory to modify it.</para>
<para>Following this Samba will bit-wise 'OR' the UNIX mode
created from this parameter with the value of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCEDIRECTORYMODE" xlink:href="smb.conf.5.html#FORCEDIRECTORYMODE">force directory mode</link> parameter.
This parameter is set to 000 by default (i.e. no extra mode bits are added).</para>
<para>Note that this parameter does not apply to permissions
set by Windows NT/2000 ACL editors. If the administrator wishes to enforce
a mask on access control lists also, they need to set the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DIRECTORYSECURITYMASK" xlink:href="smb.conf.5.html#DIRECTORYSECURITYMASK">directory security mask</link>.</para>
<para>Default: <emphasis><parameter>directory mask</parameter> = <literal>0755</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>directory mask</parameter> = <literal>0775</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>directory security mask</primary></indexterm><anchor id="DIRECTORYSECURITYMASK"/><title>
directory security mask (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls what UNIX permission bits
will be set when a Windows NT client is manipulating the UNIX
permission on a directory using the native NT security dialog
box.</para>
<para>
This parameter is applied as a mask (AND'ed with) to the incoming permission bits, thus resetting
any bits not in this mask. Make sure not to mix up this parameter with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCEDIRECTORYSECURITYMODE" xlink:href="smb.conf.5.html#FORCEDIRECTORYSECURITYMODE">force directory security mode</link>, which works similar like this one but uses logical OR instead of AND.
Essentially, zero bits in this mask are a set of bits that will always be set to zero.
</para>
<para>
Essentially, all bits set to zero in this mask will result in setting to zero the corresponding bits on the
file permissions regardless of the previous status of this bits on the file.
</para>
<para>If not set explicitly this parameter is set to 0777
meaning a user is allowed to set all the user/group/world
permissions on a directory.</para>
<para><emphasis>Note</emphasis> that users who can access the
Samba server through other means can easily bypass this restriction,
so it is primarily useful for standalone "appliance" systems.
Administrators of most normal systems will probably want to leave
it as the default of <constant>0777</constant>.</para>
<para>Default: <emphasis><parameter>directory security mask</parameter> = <literal>0777</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>directory security mask</parameter> = <literal>0700</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>disable netbios</primary></indexterm><anchor id="DISABLENETBIOS"/><title>
disable netbios (G)
</title><variablelist><varlistentry><listitem>
<para>Enabling this parameter will disable netbios support
in Samba. Netbios is the only available form of browsing in
all windows versions except for 2000 and XP. </para>
<note><para>Clients that only support netbios won't be able to
see your samba server when netbios support is disabled.
</para></note>
<para>Default: <emphasis><parameter>disable netbios</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>disable spoolss</primary></indexterm><anchor id="DISABLESPOOLSS"/><title>
disable spoolss (G)
</title><variablelist><varlistentry><listitem>
<para>Enabling this parameter will disable Samba's support
for the SPOOLSS set of MS-RPC's and will yield identical behavior
as Samba 2.0.x. Windows NT/2000 clients will downgrade to using
Lanman style printing commands. Windows 9x/ME will be unaffected by
the parameter. However, this will also disable the ability to upload
printer drivers to a Samba server via the Windows NT Add Printer
Wizard or by using the NT printer properties dialog window. It will
also disable the capability of Windows NT/2000 clients to download
print drivers from the Samba host upon demand.
<emphasis>Be very careful about enabling this parameter.</emphasis>
</para>
<para>Default: <emphasis><parameter>disable spoolss</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>display charset</primary></indexterm><anchor id="DISPLAYCHARSET"/><title>
display charset (G)
</title><variablelist><varlistentry><listitem>
<para>
Specifies the charset that samba will use to print messages to stdout and stderr.
The default value is "LOCALE", which means automatically set, depending on the
current locale. The value should generally be the same as the value of the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="UNIXCHARSET" xlink:href="smb.conf.5.html#UNIXCHARSET">unix charset</link>.
</para>
<para>Default: <emphasis><parameter>display charset</parameter> = <literal>"LOCALE" or "ASCII" (depending on the system)</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>display charset</parameter> = <literal>UTF8</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dmapi support</primary></indexterm><anchor id="DMAPISUPPORT"/><title>
dmapi support (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies whether Samba should use DMAPI to
determine whether a file is offline or not. This would typically
be used in conjunction with a hierarchical storage system that
automatically migrates files to tape.
</para>
<para>Note that Samba infers the status of a file by examining the
events that a DMAPI application has registered interest in. This
heuristic is satisfactory for a number of hierarchical storage
systems, but there may be system for which it will fail. In this
case, Samba may erroneously report files to be offline.
</para>
<para>This parameter is only available if a supported DMAPI
implementation was found at compilation time. It will only be used
if DMAPI is found to enabled on the system at run time.
</para>
<para>
</para>
<para>Default: <emphasis><parameter>dmapi support</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dns proxy</primary></indexterm><anchor id="DNSPROXY"/><title>
dns proxy (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies that <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when acting as a WINS server and
finding that a NetBIOS name has not been registered, should treat the
NetBIOS name word-for-word as a DNS name and do a lookup with the DNS server
for that name on behalf of the name-querying client.</para>
<para>Note that the maximum length for a NetBIOS name is 15
characters, so the DNS name (or DNS alias) can likewise only be
15 characters, maximum.</para>
<para><literal>nmbd</literal> spawns a second copy of itself to do the
DNS name lookup requests, as doing a name lookup is a blocking
action.</para>
<para>Default: <emphasis><parameter>dns proxy</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>domain logons</primary></indexterm><anchor id="DOMAINLOGONS"/><title>
domain logons (G)
</title><variablelist><varlistentry><listitem>
<para>
If set to <constant>yes</constant>, the Samba server will
provide the netlogon service for Windows 9X network logons for the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> it is in.
This will also cause the Samba server to act as a domain
controller for NT4 style domain services. For more details on
setting up this feature see the Domain Control chapter of the
Samba HOWTO Collection.
</para>
<para>Default: <emphasis><parameter>domain logons</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>domain master</primary></indexterm><anchor id="DOMAINMASTER"/><title>
domain master (G)
</title><variablelist><varlistentry><listitem>
<para>
Tell <citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> to enable
WAN-wide browse list collation. Setting this option causes <literal>nmbd</literal> to claim a
special domain specific NetBIOS name that identifies it as a domain master browser for its given
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link>. Local master browsers in the same <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> on
broadcast-isolated subnets will give this <literal>nmbd</literal> their local browse lists,
and then ask <citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> for a
complete copy of the browse list for the whole wide area network. Browser clients will then contact their
local master browser, and will receive the domain-wide browse list, instead of just the list for their
broadcast-isolated subnet.
</para>
<para>
Note that Windows NT Primary Domain Controllers expect to be able to claim this <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> specific special NetBIOS name that identifies them as domain master browsers for that
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> by default (i.e. there is no way to prevent a Windows NT PDC from attempting
to do this). This means that if this parameter is set and <literal>nmbd</literal> claims the
special name for a <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> before a Windows NT PDC is able to do so then cross
subnet browsing will behave strangely and may fail.
</para>
<para>
If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINLOGONS" xlink:href="smb.conf.5.html#DOMAINLOGONS">domain logons = yes</link>, then the default behavior is to enable the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINMASTER" xlink:href="smb.conf.5.html#DOMAINMASTER">domain master</link> parameter. If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINLOGONS" xlink:href="smb.conf.5.html#DOMAINLOGONS">domain logons</link> is not enabled (the
default setting), then neither will <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINMASTER" xlink:href="smb.conf.5.html#DOMAINMASTER">domain master</link> be enabled by default.
</para>
<para>
When <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINLOGONS" xlink:href="smb.conf.5.html#DOMAINLOGONS">domain logons = Yes</link> the default setting for this parameter is
Yes, with the result that Samba will be a PDC. If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINMASTER" xlink:href="smb.conf.5.html#DOMAINMASTER">domain master = No</link>,
Samba will function as a BDC. In general, this parameter should be set to 'No' only on a BDC.
</para>
<para>Default: <emphasis><parameter>domain master</parameter> = <literal>auto</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dont descend</primary></indexterm><anchor id="DONTDESCEND"/><title>
dont descend (S)
</title><variablelist><varlistentry><listitem>
<para>There are certain directories on some systems
(e.g., the <filename moreinfo="none">/proc</filename> tree under Linux) that are either not
of interest to clients or are infinitely deep (recursive). This
parameter allows you to specify a comma-delimited list of directories
that the server should always show as empty.</para>
<para>Note that Samba can be very fussy about the exact format
of the "dont descend" entries. For example you may need <filename moreinfo="none">
./proc</filename> instead of just <filename moreinfo="none">/proc</filename>.
Experimentation is the best policy :-) </para>
<para>Default: <emphasis><parameter>dont descend</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>dont descend</parameter> = <literal>/proc,/dev</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dos charset</primary></indexterm><anchor id="DOSCHARSET"/><title>
dos charset (G)
</title><variablelist><varlistentry><listitem>
<para>DOS SMB clients assume the server has
the same charset as they do. This option specifies which
charset Samba should talk to DOS clients.
</para>
<para>The default depends on which charsets you have installed.
Samba tries to use charset 850 but falls back to ASCII in
case it is not available. Run <citerefentry><refentrytitle>testparm</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> to check the default on your system.</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dos filemode</primary></indexterm><anchor id="DOSFILEMODE"/><title>
dos filemode (S)
</title><variablelist><varlistentry><listitem>
<para> The default behavior in Samba is to provide
UNIX-like behavior where only the owner of a file/directory is
able to change the permissions on it. However, this behavior
is often confusing to DOS/Windows users. Enabling this parameter
allows a user who has write access to the file (by whatever
means, including an ACL permission) to modify the permissions
(including ACL) on it. Note that a user belonging to the group
owning the file will not be allowed to change permissions if
the group is only granted read access. Ownership of the
file/directory may also be changed.</para>
<para>Default: <emphasis><parameter>dos filemode</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dos filetime resolution</primary></indexterm><anchor id="DOSFILETIMERESOLUTION"/><title>
dos filetime resolution (S)
</title><variablelist><varlistentry><listitem>
<para>Under the DOS and Windows FAT filesystem, the finest
granularity on time resolution is two seconds. Setting this parameter
for a share causes Samba to round the reported time down to the
nearest two second boundary when a query call that requires one second
resolution is made to <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>.</para>
<para>This option is mainly used as a compatibility option for Visual
C++ when used against Samba shares. If oplocks are enabled on a
share, Visual C++ uses two different time reading calls to check if a
file has changed since it was last read. One of these calls uses a
one-second granularity, the other uses a two second granularity. As
the two second call rounds any odd second down, then if the file has a
timestamp of an odd number of seconds then the two timestamps will not
match and Visual C++ will keep reporting the file has changed. Setting
this option causes the two timestamps to match, and Visual C++ is
happy.</para>
<para>Default: <emphasis><parameter>dos filetime resolution</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>dos filetimes</primary></indexterm><anchor id="DOSFILETIMES"/><title>
dos filetimes (S)
</title><variablelist><varlistentry><listitem>
<para>Under DOS and Windows, if a user can write to a
file they can change the timestamp on it. Under POSIX semantics,
only the owner of the file or root may change the timestamp. By
default, Samba runs with POSIX semantics and refuses to change the
timestamp on a file if the user <literal>smbd</literal> is acting
on behalf of is not the file owner. Setting this option to <constant>
yes</constant> allows DOS semantics and <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will change the file
timestamp as DOS requires. Due to changes in Microsoft Office 2000 and beyond,
the default for this parameter has been changed from "no" to "yes" in Samba 3.0.14
and above. Microsoft Excel will display dialog box warnings about the file being
changed by another user if this parameter is not set to "yes" and files are being
shared between users.
</para>
<para>Default: <emphasis><parameter>dos filetimes</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ea support</primary></indexterm><anchor id="EASUPPORT"/><title>
ea support (S)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will allow clients to attempt to store OS/2 style Extended
attributes on a share. In order to enable this parameter the underlying filesystem exported by
the share must support extended attributes (such as provided on XFS and EXT3 on Linux, with the
correct kernel patches). On Linux the filesystem must have been mounted with the mount
option user_xattr in order for extended attributes to work, also
extended attributes must be compiled into the Linux kernel.</para>
<para>Default: <emphasis><parameter>ea support</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>enable asu support</primary></indexterm><anchor id="ENABLEASUSUPPORT"/><title>
enable asu support (G)
</title><variablelist><varlistentry><listitem>
<para>Hosts running the "Advanced Server for Unix (ASU)" product
require some special accomodations such as creating a builting [ADMIN$]
share that only supports IPC connections. The has been the default
behavior in smbd for many years. However, certain Microsoft applications
such as the Print Migrator tool require that the remote server support
an [ADMIN$} file share. Disabling this parameter allows for creating
an [ADMIN$] file share in smb.conf.</para>
<para>Default: <emphasis><parameter>enable asu support</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>enable privileges</primary></indexterm><anchor id="ENABLEPRIVILEGES"/><title>
enable privileges (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls whether or not smbd will honor privileges assigned to specific SIDs via either
<literal>net rpc rights</literal> or one of the Windows user and group manager tools. This parameter is
enabled by default. It can be disabled to prevent members of the Domain Admins group from being able to
assign privileges to users or groups which can then result in certain smbd operations running as root that
would normally run under the context of the connected user.
</para>
<para>
An example of how privileges can be used is to assign the right to join clients to a Samba controlled
domain without providing root access to the server via smbd.
</para>
<para>
Please read the extended description provided in the Samba HOWTO documentation.
</para>
<para>Default: <emphasis><parameter>enable privileges</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>encrypt passwords</primary></indexterm><anchor id="ENCRYPTPASSWORDS"/><title>
encrypt passwords (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean controls whether encrypted passwords
will be negotiated with the client. Note that Windows NT 4.0 SP3 and
above and also Windows 98 will by default expect encrypted passwords
unless a registry entry is changed. To use encrypted passwords in
Samba see the chapter "User Database" in the Samba HOWTO Collection.
</para>
<para>
MS Windows clients that expect Microsoft encrypted passwords and that
do not have plain text password support enabled will be able to
connect only to a Samba server that has encrypted password support
enabled and for which the user accounts have a valid encrypted password.
Refer to the smbpasswd command man page for information regarding the
creation of encrypted passwords for user accounts.
</para>
<para>
The use of plain text passwords is NOT advised as support for this feature
is no longer maintained in Microsoft Windows products. If you want to use
plain text passwords you must set this parameter to no.
</para>
<para>In order for encrypted passwords to work correctly
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> must either
have access to a local <citerefentry><refentrytitle>smbpasswd</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> file (see the <citerefentry><refentrytitle>smbpasswd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> program for information on how to set up
and maintain this file), or set the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = [server|domain|ads]</link> parameter which
causes <literal>smbd</literal> to authenticate against another
server.</para>
<para>Default: <emphasis><parameter>encrypt passwords</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>enhanced browsing</primary></indexterm><anchor id="ENHANCEDBROWSING"/><title>
enhanced browsing (G)
</title><variablelist><varlistentry><listitem>
<para>This option enables a couple of enhancements to
cross-subnet browse propagation that have been added in Samba
but which are not standard in Microsoft implementations.
</para>
<para>The first enhancement to browse propagation consists of a regular
wildcard query to a Samba WINS server for all Domain Master Browsers,
followed by a browse synchronization with each of the returned
DMBs. The second enhancement consists of a regular randomised browse
synchronization with all currently known DMBs.</para>
<para>You may wish to disable this option if you have a problem with empty
workgroups not disappearing from browse lists. Due to the restrictions
of the browse protocols these enhancements can cause a empty workgroup
to stay around forever which can be annoying.</para>
<para>In general you should leave this option enabled as it makes
cross-subnet browse propagation much more reliable.</para>
<para>Default: <emphasis><parameter>enhanced browsing</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>enumports command</primary></indexterm><anchor id="ENUMPORTSCOMMAND"/><title>
enumports command (G)
</title><variablelist><varlistentry><listitem>
<para>The concept of a "port" is fairly foreign
to UNIX hosts. Under Windows NT/2000 print servers, a port
is associated with a port monitor and generally takes the form of
a local port (i.e. LPT1:, COM1:, FILE:) or a remote port
(i.e. LPD Port Monitor, etc...). By default, Samba has only one
port defined--<constant>"Samba Printer Port"</constant>. Under
Windows NT/2000, all printers must have a valid port name.
If you wish to have a list of ports displayed (<literal>smbd
</literal> does not use a port name for anything) other than
the default <constant>"Samba Printer Port"</constant>, you
can define <parameter moreinfo="none">enumports command</parameter> to point to
a program which should generate a list of ports, one per line,
to standard output. This listing will then be used in response
to the level 1 and 2 EnumPorts() RPC.</para>
<para>Default: <emphasis><parameter>enumports command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>enumports command</parameter> = <literal>/usr/bin/listports</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>eventlog list</primary></indexterm><anchor id="EVENTLOGLIST"/><title>
eventlog list (G)
</title><variablelist><varlistentry><listitem>
<para>This option defines a list of log names that Samba will
report to the Microsoft EventViewer utility. The listed
eventlogs will be associated with tdb file on disk in the
<filename>$(lockdir)/eventlog</filename>.
</para>
<para>
The administrator must use an external process to parse the normal
Unix logs such as <filename>/var/log/messages</filename>
and write then entries to the eventlog tdb files. Refer to the
eventlogadm(8) utility for how to write eventlog entries.
</para>
<para>Default: <emphasis><parameter>eventlog list</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>eventlog list</parameter> = <literal>Security Application Syslog Apache</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>fake directory create times</primary></indexterm><anchor id="FAKEDIRECTORYCREATETIMES"/><title>
fake directory create times (S)
</title><variablelist><varlistentry><listitem>
<para>NTFS and Windows VFAT file systems keep a create
time for all files and directories. This is not the same as the
ctime - status change time - that Unix keeps, so Samba by default
reports the earliest of the various times Unix does keep. Setting
this parameter for a share causes Samba to always report midnight
1-1-1980 as the create time for directories.</para>
<para>This option is mainly used as a compatibility option for
Visual C++ when used against Samba shares. Visual C++ generated
makefiles have the object directory as a dependency for each object
file, and a make rule to create the directory. Also, when NMAKE
compares timestamps it uses the creation time when examining a
directory. Thus the object directory will be created if it does not
exist, but once it does exist it will always have an earlier
timestamp than the object files it contains.</para>
<para>However, Unix time semantics mean that the create time
reported by Samba will be updated whenever a file is created or
or deleted in the directory. NMAKE finds all object files in
the object directory. The timestamp of the last one built is then
compared to the timestamp of the object directory. If the
directory's timestamp if newer, then all object files
will be rebuilt. Enabling this option
ensures directories always predate their contents and an NMAKE build
will proceed as expected.</para>
<para>Default: <emphasis><parameter>fake directory create times</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>fake oplocks</primary></indexterm><anchor id="FAKEOPLOCKS"/><title>
fake oplocks (S)
</title><variablelist><varlistentry><listitem>
<para>Oplocks are the way that SMB clients get permission
from a server to locally cache file operations. If a server grants
an oplock (opportunistic lock) then the client is free to assume
that it is the only one accessing the file and it will aggressively
cache file data. With some oplock types the client may even cache
file open/close operations. This can give enormous performance benefits.
</para>
<para>When you set <literal>fake oplocks = yes</literal>, <citerefentry>
<refentrytitle>smbd</refentrytitle><manvolnum>8</manvolnum></citerefentry> will
always grant oplock requests no matter how many clients are using the file.</para>
<para>It is generally much better to use the real <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="OPLOCKS" xlink:href="smb.conf.5.html#OPLOCKS">oplocks</link> support rather
than this parameter.</para>
<para>If you enable this option on all read-only shares or
shares that you know will only be accessed from one client at a
time such as physically read-only media like CDROMs, you will see
a big performance improvement on many operations. If you enable
this option on shares where multiple clients may be accessing the
files read-write at the same time you can get data corruption. Use
this option carefully!</para>
<para>Default: <emphasis><parameter>fake oplocks</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>follow symlinks</primary></indexterm><anchor id="FOLLOWSYMLINKS"/><title>
follow symlinks (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter allows the Samba administrator to stop <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> from following symbolic links in a particular share. Setting this
parameter to <constant>no</constant> prevents any file or directory that is a symbolic link from being
followed (the user will get an error). This option is very useful to stop users from adding a symbolic
link to <filename moreinfo="none">/etc/passwd</filename> in their home directory for instance. However
it will slow filename lookups down slightly.
</para>
<para>
This option is enabled (i.e. <literal>smbd</literal> will follow symbolic links) by default.
</para>
<para>Default: <emphasis><parameter>follow symlinks</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force create mode</primary></indexterm><anchor id="FORCECREATEMODE"/><title>
force create mode (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies a set of UNIX mode bit
permissions that will <emphasis>always</emphasis> be set on a
file created by Samba. This is done by bitwise 'OR'ing these bits onto
the mode bits of a file that is being created. The default for this parameter is (in octal)
000. The modes in this parameter are bitwise 'OR'ed onto the file
mode after the mask set in the <parameter moreinfo="none">create mask</parameter>
parameter is applied.</para>
<para>The example below would force all newly created files to have read and execute
permissions set for 'group' and 'other' as well as the
read/write/execute bits set for the 'user'.</para>
<para>Default: <emphasis><parameter>force create mode</parameter> = <literal>000</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force create mode</parameter> = <literal>0755</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force directory mode</primary></indexterm><anchor id="FORCEDIRECTORYMODE"/><title>
force directory mode (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies a set of UNIX mode bit
permissions that will <emphasis>always</emphasis> be set on a directory
created by Samba. This is done by bitwise 'OR'ing these bits onto the
mode bits of a directory that is being created. The default for this
parameter is (in octal) 0000 which will not add any extra permission
bits to a created directory. This operation is done after the mode
mask in the parameter <parameter moreinfo="none">directory mask</parameter> is
applied.</para>
<para>The example below would force all created directories to have read and execute
permissions set for 'group' and 'other' as well as the
read/write/execute bits set for the 'user'.</para>
<para>Default: <emphasis><parameter>force directory mode</parameter> = <literal>000</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force directory mode</parameter> = <literal>0755</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force directory security mode</primary></indexterm><anchor id="FORCEDIRECTORYSECURITYMODE"/><title>
force directory security mode (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls what UNIX permission bits can be modified when a Windows NT client is manipulating
the UNIX permission on a directory using the native NT security dialog box.
</para>
<para>
This parameter is applied as a mask (OR'ed with) to the changed permission bits, thus forcing any bits in this
mask that the user may have modified to be on. Make sure not to mix up this parameter with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DIRECTORYSECURITYMASK" xlink:href="smb.conf.5.html#DIRECTORYSECURITYMASK">directory security mask</link>, which works in a similar manner to this one, but uses a logical AND instead
of an OR.
</para>
<para>
Essentially, this mask may be treated as a set of bits that, when modifying security on a directory,
to will enable (1) any flags that are off (0) but which the mask has set to on (1).
</para>
<para>
If not set explicitly this parameter is 0000, which allows a user to modify all the user/group/world
permissions on a directory without restrictions.
</para>
<note><para>
Users who can access the Samba server through other means can easily bypass this restriction, so it is
primarily useful for standalone "appliance" systems. Administrators of most normal systems will
probably want to leave it set as 0000.
</para></note>
<para>Default: <emphasis><parameter>force directory security mode</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force directory security mode</parameter> = <literal>700</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>group</primary><see>force group</see></indexterm><title>
<anchor id="GROUP"/>group
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="FORCEGROUP">force group</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>force group</primary></indexterm><anchor id="FORCEGROUP"/><title>
force group (S)
</title><variablelist><varlistentry><listitem>
<para>This specifies a UNIX group name that will be
assigned as the default primary group for all users connecting
to this service. This is useful for sharing files by ensuring
that all access to files on service will use the named group for
their permissions checking. Thus, by assigning permissions for this
group to the files and directories within this service the Samba
administrator can restrict or allow sharing of these files.</para>
<para>In Samba 2.0.5 and above this parameter has extended
functionality in the following way. If the group name listed here
has a '+' character prepended to it then the current user accessing
the share only has the primary group default assigned to this group
if they are already assigned as a member of that group. This allows
an administrator to decide that only users who are already in a
particular group will create files with group ownership set to that
group. This gives a finer granularity of ownership assignment. For
example, the setting <filename moreinfo="none">force group = +sys</filename> means
that only users who are already in group sys will have their default
primary group assigned to sys when accessing this Samba share. All
other users will retain their ordinary primary group.</para>
<para>
If the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCEUSER" xlink:href="smb.conf.5.html#FORCEUSER">force user</link> parameter is also set the group specified in
<parameter moreinfo="none">force group</parameter> will override the primary group
set in <parameter moreinfo="none">force user</parameter>.</para>
<para>Default: <emphasis><parameter>force group</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force group</parameter> = <literal>agroup</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force printername</primary></indexterm><anchor id="FORCEPRINTERNAME"/><title>
force printername (S)
</title><variablelist><varlistentry><listitem>
<para>When printing from Windows NT (or later),
each printer in <filename>smb.conf</filename> has two
associated names which can be used by the client. The first
is the sharename (or shortname) defined in smb.conf. This
is the only printername available for use by Windows 9x clients.
The second name associated with a printer can be seen when
browsing to the "Printers" (or "Printers and Faxes") folder
on the Samba server. This is referred to simply as the printername
(not to be confused with the <parameter>printer name</parameter> option).
</para>
<para>When assigning a new driver to a printer on a remote
Windows compatible print server such as Samba, the Windows client
will rename the printer to match the driver name just uploaded.
This can result in confusion for users when multiple
printers are bound to the same driver. To prevent Samba from
allowing the printer's printername to differ from the sharename
defined in smb.conf, set <parameter>force printername = yes</parameter>.
</para>
<para>Be aware that enabling this parameter may affect migrating
printers from a Windows server to Samba since Windows has no way to
force the sharename and printername to match.</para>
<para>It is recommended that this parameter's value not be changed
once the printer is in use by clients as this could cause a user
not be able to delete printer connections from their local Printers
folder.</para>
<para>Default: <emphasis><parameter>force printername</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force security mode</primary></indexterm><anchor id="FORCESECURITYMODE"/><title>
force security mode (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls what UNIX permission bits can be modified when a Windows NT client is manipulating
the UNIX permission on a file using the native NT security dialog box.
</para>
<para>
This parameter is applied as a mask (OR'ed with) to the changed permission bits, thus forcing any bits in this
mask that the user may have modified to be on. Make sure not to mix up this parameter with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITYMASK" xlink:href="smb.conf.5.html#SECURITYMASK">security mask</link>, which works similar like this one but uses logical AND instead of OR.
</para>
<para>
Essentially, one bits in this mask may be treated as a set of bits that, when modifying security on a file,
the user has always set to be on.
</para>
<para>
If not set explicitly this parameter is set to 0, and allows a user to modify all the user/group/world
permissions on a file, with no restrictions.
</para>
<para><emphasis>
Note</emphasis> that users who can access the Samba server through other means can easily bypass this
restriction, so it is primarily useful for standalone "appliance" systems. Administrators of most
normal systems will probably want to leave this set to 0000.
</para>
<para>Default: <emphasis><parameter>force security mode</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force security mode</parameter> = <literal>700</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force unknown acl user</primary></indexterm><anchor id="FORCEUNKNOWNACLUSER"/><title>
force unknown acl user (S)
</title><variablelist><varlistentry><listitem>
<para>
If this parameter is set, a Windows NT ACL that contains an unknown SID (security descriptor, or
representation of a user or group id) as the owner or group owner of the file will be silently
mapped into the current UNIX uid or gid of the currently connected user.
</para>
<para>
This is designed to allow Windows NT clients to copy files and folders containing ACLs that were
created locally on the client machine and contain users local to that machine only (no domain
users) to be copied to a Samba server (usually with XCOPY /O) and have the unknown userid and
groupid of the file owner map to the current connected user. This can only be fixed correctly
when winbindd allows arbitrary mapping from any Windows NT SID to a UNIX uid or gid.
</para>
<para>
Try using this parameter when XCOPY /O gives an ACCESS_DENIED error.
</para>
<para>Default: <emphasis><parameter>force unknown acl user</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>force user</primary></indexterm><anchor id="FORCEUSER"/><title>
force user (S)
</title><variablelist><varlistentry><listitem>
<para>This specifies a UNIX user name that will be
assigned as the default user for all users connecting to this service.
This is useful for sharing files. You should also use it carefully
as using it incorrectly can cause security problems.</para>
<para>This user name only gets used once a connection is established.
Thus clients still need to connect as a valid user and supply a
valid password. Once connected, all file operations will be performed
as the "forced user", no matter what username the client connected
as. This can be very useful.</para>
<para>In Samba 2.0.5 and above this parameter also causes the
primary group of the forced user to be used as the primary group
for all file activity. Prior to 2.0.5 the primary group was left
as the primary group of the connecting user (this was a bug).</para>
<para>Default: <emphasis><parameter>force user</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>force user</parameter> = <literal>auser</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>fstype</primary></indexterm><anchor id="FSTYPE"/><title>
fstype (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter allows the administrator to configure the string that specifies the type of filesystem a share
is using that is reported by <citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>
when a client queries the filesystem type for a share. The default type is <constant>NTFS</constant> for compatibility
with Windows NT but this can be changed to other strings such as <constant>Samba</constant> or <constant>FAT</constant>
if required.
</para>
<para>Default: <emphasis><parameter>fstype</parameter> = <literal>NTFS</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>fstype</parameter> = <literal>Samba</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>get quota command</primary></indexterm><anchor id="GETQUOTACOMMAND"/><title>
get quota command (G)
</title><variablelist><varlistentry><listitem>
<para>The <literal>get quota command</literal> should only be used
whenever there is no operating system API available from the OS that
samba can use.</para>
<para>This option is only available you have compiled Samba with the
<literal>--with-sys-quotas</literal> option or on Linux with
<literal>--with-quotas</literal> and a working quota api
was found in the system.</para>
<para>This parameter should specify the path to a script that
queries the quota information for the specified
user/group for the partition that
the specified directory is on.</para>
<para>Such a script should take 3 arguments:</para>
<itemizedlist>
<listitem><para>directory</para></listitem>
<listitem><para>type of query</para></listitem>
<listitem><para>uid of user or gid of group</para></listitem>
</itemizedlist>
<para>The type of query can be one of :</para>
<itemizedlist>
<listitem><para>1 - user quotas</para></listitem>
<listitem><para>2 - user default quotas (uid = -1)</para></listitem>
<listitem><para>3 - group quotas</para></listitem>
<listitem><para>4 - group default quotas (gid = -1)</para></listitem>
</itemizedlist>
<para>This script should print one line as output with spaces between the arguments. The arguments are:
</para>
<itemizedlist>
<listitem><para>Arg 1 - quota flags (0 = no quotas, 1 = quotas enabled, 2 = quotas enabled and enforced)</para></listitem>
<listitem><para>Arg 2 - number of currently used blocks</para></listitem>
<listitem><para>Arg 3 - the softlimit number of blocks</para></listitem>
<listitem><para>Arg 4 - the hardlimit number of blocks</para></listitem>
<listitem><para>Arg 5 - currently used number of inodes</para></listitem>
<listitem><para>Arg 6 - the softlimit number of inodes</para></listitem>
<listitem><para>Arg 7 - the hardlimit number of inodes</para></listitem>
<listitem><para>Arg 8(optional) - the number of bytes in a block(default is 1024)</para></listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>get quota command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>get quota command</parameter> = <literal>/usr/local/sbin/query_quota</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>getwd cache</primary></indexterm><anchor id="GETWDCACHE"/><title>
getwd cache (G)
</title><variablelist><varlistentry><listitem>
<para>This is a tuning option. When this is enabled a
caching algorithm will be used to reduce the time taken for getwd()
calls. This can have a significant impact on performance, especially
when the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WIDESMBCONFOPTIONS" xlink:href="smb.conf.5.html#WIDESMBCONFOPTIONS">wide smbconfoptions</link> parameter is set to <constant>no</constant>.</para>
<para>Default: <emphasis><parameter>getwd cache</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>guest account</primary></indexterm><anchor id="GUESTACCOUNT"/><title>
guest account (G)
</title><variablelist><varlistentry><listitem>
<para>This is a username which will be used for access
to services which are specified as <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok</link> (see below). Whatever privileges this
user has will be available to any client connecting to the guest service.
This user must exist in the password file, but does not require
a valid login. The user account "ftp" is often a good choice
for this parameter.
</para>
<para>On some systems the default guest account "nobody" may not
be able to print. Use another account in this case. You should test
this by trying to log in as your guest user (perhaps by using the
<literal>su -</literal> command) and trying to print using the
system print command such as <literal>lpr(1)</literal> or <literal>
lp(1)</literal>.</para>
<para>This parameter does not accept % macros, because
many parts of the system require this value to be
constant for correct operation.</para>
<para>Default: <emphasis><parameter>guest account</parameter> = <literal>nobody
# default can be changed at compile-time</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>guest account</parameter> = <literal>ftp</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>public</primary><see>guest ok</see></indexterm><title>
<anchor id="PUBLIC"/>public
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="GUESTOK">guest ok</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>guest ok</primary></indexterm><anchor id="GUESTOK"/><title>
guest ok (S)
</title><variablelist><varlistentry><listitem>
<para>If this parameter is <constant>yes</constant> for
a service, then no password is required to connect to the service.
Privileges will be those of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>.</para>
<para>This paramater nullifies the benifits of setting
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="RESTRICTANONYMOUS" xlink:href="smb.conf.5.html#RESTRICTANONYMOUS">restrict anonymous = 2</link>
</para>
<para>See the section below on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link> for more information about this option.
</para>
<para>Default: <emphasis><parameter>guest ok</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>only guest</primary><see>guest only</see></indexterm><title>
<anchor id="ONLYGUEST"/>only guest
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="GUESTONLY">guest only</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>guest only</primary></indexterm><anchor id="GUESTONLY"/><title>
guest only (S)
</title><variablelist><varlistentry><listitem>
<para>If this parameter is <constant>yes</constant> for
a service, then only guest connections to the service are permitted.
This parameter will have no effect if <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok</link> is not set for the service.</para>
<para>See the section below on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security</link> for more information about this option.
</para>
<para>Default: <emphasis><parameter>guest only</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hide dot files</primary></indexterm><anchor id="HIDEDOTFILES"/><title>
hide dot files (S)
</title><variablelist><varlistentry><listitem>
<para>This is a boolean parameter that controls whether
files starting with a dot appear as hidden files.</para>
<para>Default: <emphasis><parameter>hide dot files</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hide files</primary></indexterm><anchor id="HIDEFILES"/><title>
hide files (S)
</title><variablelist><varlistentry><listitem>
<para>This is a list of files or directories that are not
visible but are accessible. The DOS 'hidden' attribute is applied
to any files or directories that match.</para>
<para>Each entry in the list must be separated by a '/',
which allows spaces to be included in the entry. '*'
and '?' can be used to specify multiple files or directories
as in DOS wildcards.</para>
<para>Each entry must be a Unix path, not a DOS path and must
not include the Unix directory separator '/'.</para>
<para>Note that the case sensitivity option is applicable
in hiding files.</para>
<para>Setting this parameter will affect the performance of Samba,
as it will be forced to check all files and directories for a match
as they are scanned.</para>
<para>
The example shown above is based on files that the Macintosh
SMB client (DAVE) available from <ulink url="http://www.thursby.com">
Thursby</ulink> creates for internal use, and also still hides
all files beginning with a dot.
</para>
<para>
An example of us of this parameter is:
<programlisting>
hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
</programlisting>
</para>
<para>Default: <emphasis><parameter>hide files</parameter> = <literal>
# no file are hidden</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hide special files</primary></indexterm><anchor id="HIDESPECIALFILES"/><title>
hide special files (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter prevents clients from seeing special files such as sockets, devices and
fifo's in directory listings.
</para>
<para>Default: <emphasis><parameter>hide special files</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hide unreadable</primary></indexterm><anchor id="HIDEUNREADABLE"/><title>
hide unreadable (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter prevents clients from seeing the
existance of files that cannot be read. Defaults to off.</para>
<para>Default: <emphasis><parameter>hide unreadable</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hide unwriteable files</primary></indexterm><anchor id="HIDEUNWRITEABLEFILES"/><title>
hide unwriteable files (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter prevents clients from seeing the existance of files that cannot be written to.
Defaults to off. Note that unwriteable directories are shown as usual.
</para>
<para>Default: <emphasis><parameter>hide unwriteable files</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>homedir map</primary></indexterm><anchor id="HOMEDIRMAP"/><title>
homedir map (G)
</title><variablelist><varlistentry><listitem>
<para>
If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NISHOMEDIR" xlink:href="smb.conf.5.html#NISHOMEDIR">nis homedir</link> is <constant>yes</constant>, and <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> is also acting as a Win95/98 <parameter moreinfo="none">logon server</parameter>
then this parameter specifies the NIS (or YP) map from which the server for the user's home directory should be extracted.
At present, only the Sun auto.home map format is understood. The form of the map is:
<programlisting>
<literal>username server:/some/file/system</literal>
</programlisting>
and the program will extract the servername from before the first ':'. There should probably be a better parsing system
that copes with different map formats and also Amd (another automounter) maps.
</para>
<note><para>
A working NIS client is required on the system for this option to work.
</para></note>
<para>Default: <emphasis><parameter>homedir map</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>homedir map</parameter> = <literal>amd.homedir</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>host msdfs</primary></indexterm><anchor id="HOSTMSDFS"/><title>
host msdfs (G)
</title><variablelist><varlistentry><listitem>
<para>
If set to <constant>yes</constant>, Samba will act as a Dfs server, and allow Dfs-aware clients to browse
Dfs trees hosted on the server.
</para>
<para>
See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MSDFSROOT" xlink:href="smb.conf.5.html#MSDFSROOT">msdfs root</link> share level parameter. For more information on
setting up a Dfs tree on Samba, refer to the MSFDS chapter in the book Samba3-HOWTO.
</para>
<para>Default: <emphasis><parameter>host msdfs</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>hostname lookups</primary></indexterm><anchor id="HOSTNAMELOOKUPS"/><title>
hostname lookups (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies whether samba should use (expensive)
hostname lookups or use the ip addresses instead. An example place
where hostname lookups are currently used is when checking
the <literal>hosts deny</literal> and <literal>hosts allow</literal>.
</para>
<para>Default: <emphasis><parameter>hostname lookups</parameter> = <literal>no</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>hostname lookups</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>allow hosts</primary><see>hosts allow</see></indexterm><title>
<anchor id="ALLOWHOSTS"/>allow hosts
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="HOSTSALLOW">hosts allow</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>hosts allow</primary></indexterm><anchor id="HOSTSALLOW"/><title>
hosts allow (S)
</title><variablelist><varlistentry><listitem>
<para>A synonym for this parameter is <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ALLOWHOSTS" xlink:href="smb.conf.5.html#ALLOWHOSTS">allow hosts</link>.</para>
<para>This parameter is a comma, space, or tab delimited
set of hosts which are permitted to access a service.</para>
<para>If specified in the [global] section then it will
apply to all services, regardless of whether the individual
service has a different setting.</para>
<para>You can specify the hosts by name or IP number. For
example, you could restrict access to only the hosts on a
Class C subnet with something like <literal>allow hosts = 150.203.5.</literal>.
The full syntax of the list is described in the man
page <filename>hosts_access(5)</filename>. Note that this man
page may not be present on your system, so a brief description will
be given here also.</para>
<para>Note that the localhost address 127.0.0.1 will always
be allowed access unless specifically denied by a <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="HOSTSDENY" xlink:href="smb.conf.5.html#HOSTSDENY">hosts deny</link> option.</para>
<para>You can also specify hosts by network/netmask pairs and
by netgroup names if your system supports netgroups. The
<emphasis>EXCEPT</emphasis> keyword can also be used to limit a
wildcard list. The following examples may provide some help:</para>
<para>Example 1: allow all IPs in 150.203.*.*; except one</para>
<para><literal>hosts allow = 150.203. EXCEPT 150.203.6.66</literal></para>
<para>Example 2: allow hosts that match the given network/netmask</para>
<para><literal>hosts allow = 150.203.15.0/255.255.255.0</literal></para>
<para>Example 3: allow a couple of hosts</para>
<para><literal>hosts allow = lapland, arvidsjaur</literal></para>
<para>Example 4: allow only hosts in NIS netgroup "foonet", but
deny access from one particular host</para>
<para><literal>hosts allow = @foonet</literal></para>
<para><literal>hosts deny = pirate</literal></para>
<note><para>Note that access still requires suitable user-level passwords.</para></note>
<para>See <citerefentry><refentrytitle>testparm</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> for a way of testing your host access
to see if it does what you expect.</para>
<para>Default: <emphasis><parameter>hosts allow</parameter> = <literal>
# none (i.e., all hosts permitted access)</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>hosts allow</parameter> = <literal>150.203.5. myhost.mynet.edu.au</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>deny hosts</primary><see>hosts deny</see></indexterm><title>
<anchor id="DENYHOSTS"/>deny hosts
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="HOSTSDENY">hosts deny</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>hosts deny</primary></indexterm><anchor id="HOSTSDENY"/><title>
hosts deny (S)
</title><variablelist><varlistentry><listitem>
<para>The opposite of <parameter moreinfo="none">hosts allow</parameter>
- hosts listed here are <emphasis>NOT</emphasis> permitted access to
services unless the specific services have their own lists to override
this one. Where the lists conflict, the <parameter moreinfo="none">allow</parameter>
list takes precedence.</para>
<para>
In the event that it is necessary to deny all by default, use the keyword
ALL (or the netmask <literal>0.0.0.0/0</literal>) and then explicitly specify
to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="HOSTSALLOW" xlink:href="smb.conf.5.html#HOSTSALLOW">hosts allow = hosts allow</link> parameter those hosts
that should be permitted access.
</para>
<para>Default: <emphasis><parameter>hosts deny</parameter> = <literal>
# none (i.e., no hosts specifically excluded)</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>hosts deny</parameter> = <literal>150.203.4. badhost.mynet.edu.au</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap alloc backend</primary></indexterm><anchor id="IDMAPALLOCBACKEND"/><title>
idmap alloc backend (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap alloc backend provides a plugin interface for Winbind to use
when allocating Unix uids/gids for Windows SIDs. This option is
to be used in conjunction with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link>
parameter and refers to the name of the idmap module which will provide
the id allocation functionality. Please refer to the man page
for each idmap plugin to determine whether or not the module implements
the allocation feature. The most common plugins are the tdb (<citerefentry>
<refentrytitle>idmap_tdb</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
and ldap (<citerefentry><refentrytitle>idmap_ldap</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>) libraries.
</para>
<para>Also refer to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPALLOCCONFIG" xlink:href="smb.conf.5.html#IDMAPALLOCCONFIG">idmap alloc config</link> option.
</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>idmap alloc backend</parameter> = <literal>tdb</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap alloc config</primary></indexterm><anchor id="IDMAPALLOCCONFIG"/><title>
idmap alloc config (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap alloc config prefix provides a means of managing settings
for the backend defined by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPALLOCBACKEND" xlink:href="smb.conf.5.html#IDMAPALLOCBACKEND">idmap alloc backend</link>
parameter. Refer to the man page for each idmap plugin regarding
specific configuration details.
</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap backend</primary></indexterm><anchor id="IDMAPBACKEND"/><title>
idmap backend (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap backend provides a plugin interface for Winbind to use
varying backends to store SID/uid/gid mapping tables. This
option is mutually exclusive with the newer and more flexible
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link> parameter. The main difference
between the "idmap backend" and the "idmap domains"
is that the former only allows one backend for all domains while the
latter supports configuring backends on a per domain basis.
</para>
<para>Examples of SID/uid/gid backends include tdb (<citerefentry>
<refentrytitle>idmap_tdb</refentrytitle><manvolnum>8</manvolnum></citerefentry>),
ldap (<citerefentry><refentrytitle>idmap_ldap</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>), rid (<citerefentry>
<refentrytitle>idmap_rid</refentrytitle><manvolnum>8</manvolnum></citerefentry>),
and ad (<citerefentry><refentrytitle>idmap_tdb</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>).
</para>
<para>Default: <emphasis><parameter>idmap backend</parameter> = <literal>tdb</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap cache time</primary></indexterm><anchor id="IDMAPCACHETIME"/><title>
idmap cache time (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the number of seconds that Winbind's
idmap interface will cache positive SID/uid/gid query results.
</para>
<para>Default: <emphasis><parameter>idmap cache time</parameter> = <literal>900</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap config</primary></indexterm><anchor id="IDMAPCONFIG"/><title>
idmap config (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap config prefix provides a means of managing each domain
defined by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link> option using Samba's
parametric option support. The idmap config prefix should be
followed by the name of the domain, a colon, and a setting specific to
the chosen backend. There are three options available for all domains:
</para>
<variablelist>
<varlistentry>
<term>backend = backend_name</term>
<listitem><para>
Specifies the name of the idmap plugin to use as the
SID/uid/gid backend for this domain.
</para></listitem>
</varlistentry>
<varlistentry>
<term>default = [yes|no]</term>
<listitem><para>
The default domain/backend will be used for searching for
users and groups not belonging to one of the explicitly
listed domains (matched by comparing the account SID and the
domain SID).
</para></listitem>
</varlistentry>
<varlistentry>
<term>readonly = [yes|no]</term>
<listitem><para>
Mark the domain as readonly which means that no attempts to
allocate a uid or gid (by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPALLOCBACKEND" xlink:href="smb.conf.5.html#IDMAPALLOCBACKEND">idmap alloc backend</link>) for any user or group in that domain
will be attempted.
</para></listitem>
</varlistentry>
</variablelist>
<para>
The following example illustrates how to configure the <citerefentry>
<refentrytitle>idmap_ad</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for the CORP domain and the <citerefentry><refentrytitle>idmap_tdb</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> backend for all other domains. The
TRUSTEDDOMAINS string is simply an arbitrary key used to reference the "idmap
config" settings and does not represent the actual name of a domain.
It is a catchall domain backend for any domain not explicitly listed.
</para>
<programlisting>
idmap domains = CORP TRUSTEDDOMAINS
idmap config CORP:backend = ad
idmap config CORP:readonly = yes
idmap config TRUSTEDDOMAINS:backend = tdb
idmap config TRUSTEDDOMAINS:default = yes
idmap config TRUSTEDDOMAINS:range = 1000 - 9999
</programlisting>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap domains</primary></indexterm><anchor id="IDMAPDOMAINS"/><title>
idmap domains (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap domains option defines a list of Windows domains which will each
have a separately configured backend for managing Winbind's SID/uid/gid
tables. This parameter is mutually exclusive with the older <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPBACKEND" xlink:href="smb.conf.5.html#IDMAPBACKEND">idmap backend</link> option.
</para>
<para>
Values consist of the short domain name for Winbind's primary or collection
of trusted domains. You may also use an arbitrary string to represent a catchall
domain backend for any domain not explicitly listed.
</para>
<para>
Refer to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPCONFIG" xlink:href="smb.conf.5.html#IDMAPCONFIG">idmap config</link> for details about
managing the SID/uid/gid backend for each domain.
</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>idmap domains</parameter> = <literal>default AD CORP</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind gid</primary><see>idmap gid</see></indexterm><title>
<anchor id="WINBINDGID"/>winbind gid
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="IDMAPGID">idmap gid</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>idmap gid</primary></indexterm><anchor id="IDMAPGID"/><title>
idmap gid (G)
</title><variablelist><varlistentry><listitem>
<para>The idmap gid parameter specifies the range of group ids
that are allocated for the purpose of mapping UNX groups to NT group
SIDs. This range of group ids should have no
existing local or NIS groups within it as strange conflicts can
occur otherwise.</para>
<para>See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPBACKEND" xlink:href="smb.conf.5.html#IDMAPBACKEND">idmap backend</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link>, and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPCONFIG" xlink:href="smb.conf.5.html#IDMAPCONFIG">idmap config</link> options.
</para>
<para>Default: <emphasis><parameter>idmap gid</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>idmap gid</parameter> = <literal>10000-20000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>idmap negative cache time</primary></indexterm><anchor id="IDMAPNEGATIVECACHETIME"/><title>
idmap negative cache time (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the number of seconds that Winbind's
idmap interface will cache negative SID/uid/gid query results.
</para>
<para>Default: <emphasis><parameter>idmap negative cache time</parameter> = <literal>120</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind uid</primary><see>idmap uid</see></indexterm><title>
<anchor id="WINBINDUID"/>winbind uid
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="IDMAPUID">idmap uid</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>idmap uid</primary></indexterm><anchor id="IDMAPUID"/><title>
idmap uid (G)
</title><variablelist><varlistentry><listitem>
<para>
The idmap uid parameter specifies the range of user ids that are
allocated for use in mapping UNIX users to NT user SIDs. This
range of ids should have no existing local
or NIS users within it as strange conflicts can occur otherwise.</para>
<para>See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPBACKEND" xlink:href="smb.conf.5.html#IDMAPBACKEND">idmap backend</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link>, and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPCONFIG" xlink:href="smb.conf.5.html#IDMAPCONFIG">idmap config</link> options.
</para>
<para>Default: <emphasis><parameter>idmap uid</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>idmap uid</parameter> = <literal>10000-20000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>include</primary></indexterm><anchor id="INCLUDE"/><title>
include (G)
</title><variablelist><varlistentry><listitem>
<para>
This allows you to include one config file inside another. The file is included literally, as though typed
in place.
</para>
<para>
It takes the standard substitutions, except <parameter moreinfo="none">%u</parameter>,
<parameter moreinfo="none">%P</parameter> and <parameter moreinfo="none">%S</parameter>.
</para>
<para>
The parameter <parameter>include = registry</parameter> has
a special meaning: It does <emphasis>not</emphasis> include
a file named <emphasis>registry</emphasis> from the current working
directory, but instead reads the global configuration options
from the registry. See the section on registry-based
configuration for details. Note that this option
automatically activates registry shares.
</para>
<para>Default: <emphasis><parameter>include</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>include</parameter> = <literal>/usr/local/samba/lib/admin_smb.conf</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>inherit acls</primary></indexterm><anchor id="INHERITACLS"/><title>
inherit acls (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter can be used to ensure that if default acls
exist on parent directories, they are always honored when creating a
new file or subdirectory in these parent directories. The default
behavior is to use the unix mode specified when creating the directory.
Enabling this option sets the unix mode to 0777, thus guaranteeing that
default directory acls are propagated.
</para>
<para>Default: <emphasis><parameter>inherit acls</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>inherit owner</primary></indexterm><anchor id="INHERITOWNER"/><title>
inherit owner (S)
</title><variablelist><varlistentry><listitem>
<para>The ownership of new files and directories
is normally governed by effective uid of the connected user.
This option allows the Samba administrator to specify that
the ownership for new files and directories should be controlled
by the ownership of the parent directory.</para>
<para>Common scenarios where this behavior is useful is in
implementing drop-boxes where users can create and edit files but not
delete them and to ensure that newly create files in a user's
roaming profile directory are actually owner by the user.</para>
<para>Default: <emphasis><parameter>inherit owner</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>inherit permissions</primary></indexterm><anchor id="INHERITPERMISSIONS"/><title>
inherit permissions (S)
</title><variablelist><varlistentry><listitem>
<para>
The permissions on new files and directories are normally governed by <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link>,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DIRECTORYMASK" xlink:href="smb.conf.5.html#DIRECTORYMASK">directory mask</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCECREATEMODE" xlink:href="smb.conf.5.html#FORCECREATEMODE">force create mode</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCEDIRECTORYMODE" xlink:href="smb.conf.5.html#FORCEDIRECTORYMODE">force directory mode</link> but the boolean inherit permissions parameter overrides this.
</para>
<para>New directories inherit the mode of the parent directory,
including bits such as setgid.</para>
<para>
New files inherit their read/write bits from the parent directory. Their execute bits continue to be
determined by <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPARCHIVE" xlink:href="smb.conf.5.html#MAPARCHIVE">map archive</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPHIDDEN" xlink:href="smb.conf.5.html#MAPHIDDEN">map hidden</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPSYSTEM" xlink:href="smb.conf.5.html#MAPSYSTEM">map system</link> as usual.
</para>
<para>Note that the setuid bit is <emphasis>never</emphasis> set via
inheritance (the code explicitly prohibits this).</para>
<para>This can be particularly useful on large systems with
many users, perhaps several thousand, to allow a single [homes]
share to be used flexibly by each user.</para>
<para>Default: <emphasis><parameter>inherit permissions</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>interfaces</primary></indexterm><anchor id="INTERFACES"/><title>
interfaces (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows you to override the default
network interfaces list that Samba will use for browsing, name
registration and other NetBIOS over TCP/IP (NBT) traffic. By default Samba will query
the kernel for the list of all active interfaces and use any
interfaces except 127.0.0.1 that are broadcast capable.</para>
<para>The option takes a list of interface strings. Each string
can be in any of the following forms:</para>
<itemizedlist>
<listitem><para>a network interface name (such as eth0).
This may include shell-like wildcards so eth* will match
any interface starting with the substring "eth"</para></listitem>
<listitem><para>an IP address. In this case the netmask is
determined from the list of interfaces obtained from the
kernel</para></listitem>
<listitem><para>an IP/mask pair. </para></listitem>
<listitem><para>a broadcast/mask pair.</para></listitem>
</itemizedlist>
<para>The "mask" parameters can either be a bit length (such
as 24 for a C class network) or a full netmask in dotted
decimal form.</para>
<para>The "IP" parameters above can either be a full dotted
decimal IP address or a hostname which will be looked up via
the OS's normal hostname resolution mechanisms.</para>
<para>
By default Samba enables all active interfaces that are broadcast capable
except the loopback adaptor (IP address 127.0.0.1).
</para>
<para>
The example below configures three network interfaces corresponding
to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10.
The netmasks of the latter two interfaces would be set to 255.255.255.0.
</para>
<para>Default: <emphasis><parameter>interfaces</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>interfaces</parameter> = <literal>eth0 192.168.2.10/24 192.168.3.10/255.255.255.0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>invalid users</primary></indexterm><anchor id="INVALIDUSERS"/><title>
invalid users (S)
</title><variablelist><varlistentry><listitem>
<para>This is a list of users that should not be allowed
to login to this service. This is really a <emphasis>paranoid</emphasis>
check to absolutely ensure an improper setting does not breach
your security.</para>
<para>A name starting with a '@' is interpreted as an NIS
netgroup first (if your system supports NIS), and then as a UNIX
group if the name was not found in the NIS netgroup database.</para>
<para>A name starting with '+' is interpreted only
by looking in the UNIX group database via the NSS getgrnam() interface. A name starting with
'&' is interpreted only by looking in the NIS netgroup database
(this requires NIS to be working on your system). The characters
'+' and '&' may be used at the start of the name in either order
so the value <parameter moreinfo="none">+&group</parameter> means check the
UNIX group database, followed by the NIS netgroup database, and
the value <parameter moreinfo="none">&+group</parameter> means check the NIS
netgroup database, followed by the UNIX group database (the
same as the '@' prefix).</para>
<para>The current servicename is substituted for <parameter moreinfo="none">%S</parameter>.
This is useful in the [homes] section.</para>
<para>Default: <emphasis><parameter>invalid users</parameter> = <literal>
# no invalid users</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>invalid users</parameter> = <literal>root fred admin @wheel</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>iprint server</primary></indexterm><anchor id="IPRINTSERVER"/><title>
iprint server (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is only applicable if <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link> is set to <constant>iprint</constant>.
</para>
<para>
If set, this option overrides the ServerName option in the CUPS <filename>client.conf</filename>. This is
necessary if you have virtual samba servers that connect to different CUPS daemons.
</para>
<para>Default: <emphasis><parameter>iprint server</parameter> = <literal>""</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>iprint server</parameter> = <literal>MYCUPSSERVER</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>keepalive</primary></indexterm><anchor id="KEEPALIVE"/><title>
keepalive (G)
</title><variablelist><varlistentry><listitem>
<para>The value of the parameter (an integer) represents
the number of seconds between <parameter moreinfo="none">keepalive</parameter>
packets. If this parameter is zero, no keepalive packets will be
sent. Keepalive packets, if sent, allow the server to tell whether
a client is still present and responding.</para>
<para>Keepalives should, in general, not be needed if the socket
has the SO_KEEPALIVE attribute set on it by default. (see <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SOCKETOPTIONS" xlink:href="smb.conf.5.html#SOCKETOPTIONS">socket options</link>).
Basically you should only use this option if you strike difficulties.</para>
<para>Default: <emphasis><parameter>keepalive</parameter> = <literal>300</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>keepalive</parameter> = <literal>600</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>kernel change notify</primary></indexterm><anchor id="KERNELCHANGENOTIFY"/><title>
kernel change notify (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies whether Samba should ask the
kernel for change notifications in directories so that
SMB clients can refresh whenever the data on the server changes.
</para>
<para>This parameter is only used when your kernel supports
change notification to user programs using the inotify interface.
</para>
<para>Default: <emphasis><parameter>kernel change notify</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>kernel oplocks</primary></indexterm><anchor id="KERNELOPLOCKS"/><title>
kernel oplocks (G)
</title><variablelist><varlistentry><listitem>
<para>For UNIXes that support kernel based <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="OPLOCKS" xlink:href="smb.conf.5.html#OPLOCKS">oplocks</link>
(currently only IRIX and the Linux 2.4 kernel), this parameter
allows the use of them to be turned on or off.</para>
<para>Kernel oplocks support allows Samba <parameter moreinfo="none">oplocks
</parameter> to be broken whenever a local UNIX process or NFS operation
accesses a file that <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> has oplocked. This allows complete
data consistency between SMB/CIFS, NFS and local file access (and is
a <emphasis>very</emphasis> cool feature :-).</para>
<para>This parameter defaults to <constant>on</constant>, but is translated
to a no-op on systems that no not have the necessary kernel support.
You should never need to touch this parameter.</para>
<para>Default: <emphasis><parameter>kernel oplocks</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lanman auth</primary></indexterm><anchor id="LANMANAUTH"/><title>
lanman auth (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines whether or not <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will attempt to
authenticate users or permit password changes
using the LANMAN password hash. If disabled, only clients which support NT
password hashes (e.g. Windows NT/2000 clients, smbclient, but not
Windows 95/98 or the MS DOS network client) will be able to
connect to the Samba host.</para>
<para>The LANMAN encrypted response is easily broken, due to it's
case-insensitive nature, and the choice of algorithm. Servers
without Windows 95/98/ME or MS DOS clients are advised to disable
this option. </para>
<para>Unlike the <literal>encrypt
passwords</literal> option, this parameter cannot alter client
behaviour, and the LANMAN response will still be sent over the
network. See the <literal>client lanman
auth</literal> to disable this for Samba's clients (such as smbclient)</para>
<para>If this option, and <literal>ntlm
auth</literal> are both disabled, then only NTLMv2 logins will be
permited. Not all clients support NTLMv2, and most will require
special configuration to use it.</para>
<para>Default: <emphasis><parameter>lanman auth</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>large readwrite</primary></indexterm><anchor id="LARGEREADWRITE"/><title>
large readwrite (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines whether or not
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> supports the new 64k
streaming read and write varient SMB requests introduced with
Windows 2000. Note that due to Windows 2000 client redirector bugs
this requires Samba to be running on a 64-bit capable operating
system such as IRIX, Solaris or a Linux 2.4 kernel. Can improve
performance by 10% with Windows 2000 clients. Defaults to on. Not as
tested as some other Samba code paths.</para>
<para>Default: <emphasis><parameter>large readwrite</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap admin dn</primary></indexterm><anchor id="LDAPADMINDN"/><title>
ldap admin dn (G)
</title><variablelist><varlistentry><listitem>
<para>
The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPADMINDN" xlink:href="smb.conf.5.html#LDAPADMINDN">ldap admin dn</link> defines the Distinguished Name (DN) name used by Samba to contact
the ldap server when retreiving user account information. The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPADMINDN" xlink:href="smb.conf.5.html#LDAPADMINDN">ldap admin dn</link> is used
in conjunction with the admin dn password stored in the <filename moreinfo="none">private/secrets.tdb</filename>
file. See the <citerefentry><refentrytitle>smbpasswd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>
man page for more information on how to accomplish this.
</para>
<para>
The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPADMINDN" xlink:href="smb.conf.5.html#LDAPADMINDN">ldap admin dn</link> requires a fully specified DN. The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> is not appended to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPADMINDN" xlink:href="smb.conf.5.html#LDAPADMINDN">ldap admin dn</link>.
</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap connection timeout</primary></indexterm><anchor id="LDAPCONNECTIONTIMEOUT"/><title>
ldap connection timeout (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter tells the LDAP library calls which timeout in seconds
they should honor during initial connection establishments to LDAP servers.
It is very useful in failover scenarios in particular. If one or more LDAP
servers are not reachable at all, we do not have to wait until TCP
timeouts are over. This feature must be supported by your LDAP library.
</para>
<para>
This parameter is different from <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPTIMEOUT" xlink:href="smb.conf.5.html#LDAPTIMEOUT">ldap timeout</link>
which affects operations on LDAP servers using an existing connection
and not establishing an initial connection.
</para>
<para>Default: <emphasis><parameter>ldap connection timeout</parameter> = <literal>2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap debug level</primary></indexterm><anchor id="LDAPDEBUGLEVEL"/><title>
ldap debug level (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls the debug level of the LDAP library
calls. In the case of OpenLDAP, it is the same
bit-field as understood by the server and documented in the
<citerefentry>
<refentrytitle>slapd.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>
manpage.
A typical useful value will be
<emphasis>1</emphasis> for tracing function calls.
</para>
<para>
The debug ouput from the LDAP libraries appears with the
prefix [LDAP] in Samba's logging output.
The level at which LDAP logging is printed is controlled by the
parameter <parameter>ldap debug threshold</parameter>.
</para>
<para>Default: <emphasis><parameter>ldap debug level</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap debug level</parameter> = <literal>1</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap debug threshold</primary></indexterm><anchor id="LDAPDEBUGTHRESHOLD"/><title>
ldap debug threshold (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls the Samba debug level at which
the ldap library debug output is
printed in the Samba logs. See the description of
<parameter>ldap debug level</parameter> for details.
</para>
<para>Default: <emphasis><parameter>ldap debug threshold</parameter> = <literal>10</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap debug threshold</parameter> = <literal>5</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap delete dn</primary></indexterm><anchor id="LDAPDELETEDN"/><title>
ldap delete dn (G)
</title><variablelist><varlistentry><listitem>
<para> This parameter specifies whether a delete
operation in the ldapsam deletes the complete entry or only the attributes
specific to Samba.
</para>
<para>Default: <emphasis><parameter>ldap delete dn</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap group suffix</primary></indexterm><anchor id="LDAPGROUPSUFFIX"/><title>
ldap group suffix (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the suffix that is
used for groups when these are added to the LDAP directory.
If this parameter is unset, the value of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> will be used instead. The suffix string is pre-pended to the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> string so use a partial DN.</para>
<para>Default: <emphasis><parameter>ldap group suffix</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap group suffix</parameter> = <literal>ou=Groups</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap idmap suffix</primary></indexterm><anchor id="LDAPIDMAPSUFFIX"/><title>
ldap idmap suffix (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameters specifies the suffix that is used when storing idmap mappings. If this parameter
is unset, the value of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> will be used instead. The suffix
string is pre-pended to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> string so use a partial DN.
</para>
<para>Default: <emphasis><parameter>ldap idmap suffix</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap idmap suffix</parameter> = <literal>ou=Idmap</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap machine suffix</primary></indexterm><anchor id="LDAPMACHINESUFFIX"/><title>
ldap machine suffix (G)
</title><variablelist><varlistentry><listitem>
<para>
It specifies where machines should be added to the ldap tree. If this parameter is unset, the value of
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> will be used instead. The suffix string is pre-pended to the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> string so use a partial DN.
</para>
<para>Default: <emphasis><parameter>ldap machine suffix</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap machine suffix</parameter> = <literal>ou=Computers</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap passwd sync</primary></indexterm><anchor id="LDAPPASSWDSYNC"/><title>
ldap passwd sync (G)
</title><variablelist><varlistentry><listitem>
<para>
This option is used to define whether or not Samba should sync the LDAP password with the NT
and LM hashes for normal accounts (NOT for workstation, server or domain trusts) on a password
change via SAMBA.
</para>
<para>
The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPPASSWDSYNC" xlink:href="smb.conf.5.html#LDAPPASSWDSYNC">ldap passwd sync</link> can be set to one of three values:
</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">Yes</parameter> = Try
to update the LDAP, NT and LM passwords and update the pwdLastSet time.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">No</parameter> = Update NT and
LM passwords and update the pwdLastSet time.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">Only</parameter> = Only update
the LDAP password and let the LDAP server do the rest.</para>
</listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>ldap passwd sync</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap replication sleep</primary></indexterm><anchor id="LDAPREPLICATIONSLEEP"/><title>
ldap replication sleep (G)
</title><variablelist><varlistentry><listitem>
<para>
When Samba is asked to write to a read-only LDAP replica, we are redirected to talk to the read-write master server.
This server then replicates our changes back to the 'local' server, however the replication might take some seconds,
especially over slow links. Certain client activities, particularly domain joins, can become confused by the 'success'
that does not immediately change the LDAP back-end's data.
</para>
<para>
This option simply causes Samba to wait a short time, to allow the LDAP server to catch up. If you have a particularly
high-latency network, you may wish to time the LDAP replication with a network sniffer, and increase this value accordingly.
Be aware that no checking is performed that the data has actually replicated.
</para>
<para>
The value is specified in milliseconds, the maximum value is 5000 (5 seconds).
</para>
<para>Default: <emphasis><parameter>ldap replication sleep</parameter> = <literal>1000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldapsam:editposix</primary></indexterm><anchor id="LDAPSAM:EDITPOSIX"/><title>
ldapsam:editposix (G)
</title><variablelist><varlistentry><listitem>
<para>
Editposix is an option that leverages ldapsam:trusted to make it simpler to manage a domain controller
eliminating the need to set up custom scripts to add and manage the posix users and groups. This option
will instead directly manipulate the ldap tree to create, remove and modify user and group entries.
This option also requires a running winbindd as it is used to allocate new uids/gids on user/group
creation. The allocation range must be therefore configured.
</para>
<para>
To use this option, a basic ldap tree must be provided and the ldap suffix parameters must be properly
configured. On virgin servers the default users and groups (Administrator, Guest, Domain Users,
Domain Admins, Domain Guests) can be precreated with the command <literal>net sam
provision</literal>. To run this command the ldap server must be running, Winindd must be running and
the smb.conf ldap options must be properly configured.
The typical ldap setup used with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSAM:TRUSTED" xlink:href="smb.conf.5.html#LDAPSAM:TRUSTED">ldapsam:trusted = yes</link> option
is usually sufficient to use <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSAM:EDITPOSIX" xlink:href="smb.conf.5.html#LDAPSAM:EDITPOSIX">ldapsam:editposix = yes</link> as well.
</para>
<para>
An example configuration can be the following:
<programlisting>
encrypt passwords = true
passdb backend = ldapsam
ldapsam:trusted=yes
ldapsam:editposix=yes
ldap admin dn = cn=admin,dc=samba,dc=org
ldap delete dn = yes
ldap group suffix = ou=groups
ldap idmap suffix = ou=idmap
ldap machine suffix = ou=computers
ldap user suffix = ou=users
ldap suffix = dc=samba,dc=org
idmap backend = ldap:"ldap://localhost"
idmap uid = 5000-50000
idmap gid = 5000-50000
</programlisting>
This configuration assumes a directory layout like described in the following ldif:
<programlisting>
dn: dc=samba,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: samba.org
dc: samba
dn: cn=admin,dc=samba,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: secret
dn: ou=users,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: ou=idmap,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: idmap
dn: ou=computers,dc=samba,dc=org
objectClass: top
objectClass: organizationalUnit
ou: computers
</programlisting>
</para>
<para>Default: <emphasis><parameter>ldapsam:editposix</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldapsam:trusted</primary></indexterm><anchor id="LDAPSAM:TRUSTED"/><title>
ldapsam:trusted (G)
</title><variablelist><varlistentry><listitem>
<para>
By default, Samba as a Domain Controller with an LDAP backend needs to use the Unix-style NSS subsystem to
access user and group information. Due to the way Unix stores user information in /etc/passwd and /etc/group
this inevitably leads to inefficiencies. One important question a user needs to know is the list of groups he
is member of. The plain UNIX model involves a complete enumeration of the file /etc/group and its NSS
counterparts in LDAP. UNIX has optimized functions to enumerate group membership. Sadly, other functions that
are used to deal with user and group attributes lack such optimization.
</para>
<para>
To make Samba scale well in large environments, the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSAM:TRUSTED" xlink:href="smb.conf.5.html#LDAPSAM:TRUSTED">ldapsam:trusted = yes</link>
option assumes that the complete user and group database that is relevant to Samba is stored in LDAP with the
standard posixAccount/posixGroup attributes. It further assumes that the Samba auxiliary object classes are
stored together with the POSIX data in the same LDAP object. If these assumptions are met,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSAM:TRUSTED" xlink:href="smb.conf.5.html#LDAPSAM:TRUSTED">ldapsam:trusted = yes</link> can be activated and Samba can bypass the
NSS system to query user group memberships. Optimized LDAP queries can greatly speed up domain logon and
administration tasks. Depending on the size of the LDAP database a factor of 100 or more for common queries
is easily achieved.
</para>
<para>Default: <emphasis><parameter>ldapsam:trusted</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap ssl</primary></indexterm><anchor id="LDAPSSL"/><title>
ldap ssl (G)
</title><variablelist><varlistentry><listitem>
<para>This option is used to define whether or not Samba should
use SSL when connecting to the ldap server
This is <emphasis>NOT</emphasis> related to
Samba's previous SSL support which was enabled by specifying the
<literal>--with-ssl</literal> option to the <filename moreinfo="none">configure</filename>
script.</para>
<para>The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSSL" xlink:href="smb.conf.5.html#LDAPSSL">ldap ssl</link> can be set to one of three values:</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">Off</parameter> = Never
use SSL when querying the directory.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">Start_tls</parameter> = Use
the LDAPv3 StartTLS extended operation (RFC2830) for
communicating with the directory server.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">On</parameter> = Use SSL
on the ldaps port when contacting the <parameter moreinfo="none">ldap server</parameter>. Only available when the
backwards-compatiblity <literal>--with-ldapsam</literal> option is specified
to configure. See <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSDBBACKEND" xlink:href="smb.conf.5.html#PASSDBBACKEND">passdb backend</link></para>.
</listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>ldap ssl</parameter> = <literal>start_tls</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap suffix</primary></indexterm><anchor id="LDAPSUFFIX"/><title>
ldap suffix (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies the base for all ldap suffixes and for storing the sambaDomain object.</para>
<para>
The ldap suffix will be appended to the values specified for the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPUSERSUFFIX" xlink:href="smb.conf.5.html#LDAPUSERSUFFIX">ldap user suffix</link>,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPGROUPSUFFIX" xlink:href="smb.conf.5.html#LDAPGROUPSUFFIX">ldap group suffix</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPMACHINESUFFIX" xlink:href="smb.conf.5.html#LDAPMACHINESUFFIX">ldap machine suffix</link>, and the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPIDMAPSUFFIX" xlink:href="smb.conf.5.html#LDAPIDMAPSUFFIX">ldap idmap suffix</link>. Each of these should be given only a DN relative to the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link>.
</para>
<para>Default: <emphasis><parameter>ldap suffix</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap suffix</parameter> = <literal>dc=samba,dc=org</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap timeout</primary></indexterm><anchor id="LDAPTIMEOUT"/><title>
ldap timeout (G)
</title><variablelist><varlistentry><listitem>
<para>
When Samba connects to an ldap server that server may be down or unreachable. To prevent Samba from hanging whilst
waiting for the connection this parameter specifies in seconds how long Samba should wait before failing the
connect. The default is to only wait fifteen seconds for the ldap server to respond to the connect request.
</para>
<para>Default: <emphasis><parameter>ldap timeout</parameter> = <literal>15</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ldap user suffix</primary></indexterm><anchor id="LDAPUSERSUFFIX"/><title>
ldap user suffix (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies where users are added to the tree. If this parameter is unset,
the value of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> will be used instead. The suffix
string is pre-pended to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSUFFIX" xlink:href="smb.conf.5.html#LDAPSUFFIX">ldap suffix</link> string so use a partial DN.
</para>
<para>Default: <emphasis><parameter>ldap user suffix</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>ldap user suffix</parameter> = <literal>ou=people</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>level2 oplocks</primary></indexterm><anchor id="LEVEL2OPLOCKS"/><title>
level2 oplocks (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether Samba supports
level2 (read-only) oplocks on a share.</para>
<para>Level2, or read-only oplocks allow Windows NT clients
that have an oplock on a file to downgrade from a read-write oplock
to a read-only oplock once a second client opens the file (instead
of releasing all oplocks on a second open, as in traditional,
exclusive oplocks). This allows all openers of the file that
support level2 oplocks to cache the file for read-ahead only (ie.
they may not cache writes or lock requests) and increases performance
for many accesses of files that are not commonly written (such as
application .EXE files).</para>
<para>Once one of the clients which have a read-only oplock
writes to the file all clients are notified (no reply is needed
or waited for) and told to break their oplocks to "none" and
delete any read-ahead caches.</para>
<para>It is recommended that this parameter be turned on to
speed access to shared executables.</para>
<para>For more discussions on level2 oplocks see the CIFS spec.</para>
<para>
Currently, if <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="KERNELOPLOCKS" xlink:href="smb.conf.5.html#KERNELOPLOCKS">kernel oplocks</link> are supported then
level2 oplocks are not granted (even if this parameter is set to
<constant>yes</constant>). Note also, the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="OPLOCKS" xlink:href="smb.conf.5.html#OPLOCKS">oplocks</link>
parameter must be set to <constant>yes</constant> on this share in order for
this parameter to have any effect.</para>
<para>Default: <emphasis><parameter>level2 oplocks</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lm announce</primary></indexterm><anchor id="LMANNOUNCE"/><title>
lm announce (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines if <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will produce Lanman announce
broadcasts that are needed by OS/2 clients in order for them to see
the Samba server in their browse list. This parameter can have three
values, <constant>yes</constant>, <constant>no</constant>, or
<constant>auto</constant>. The default is <constant>auto</constant>.
If set to <constant>no</constant> Samba will never produce these
broadcasts. If set to <constant>yes</constant> Samba will produce
Lanman announce broadcasts at a frequency set by the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LMINTERVAL" xlink:href="smb.conf.5.html#LMINTERVAL">lm interval</link>. If set to <constant>auto</constant>
Samba will not send Lanman announce broadcasts by default but will
listen for them. If it hears such a broadcast on the wire it will
then start sending them at a frequency set by the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LMINTERVAL" xlink:href="smb.conf.5.html#LMINTERVAL">lm interval</link>.</para>
<para>Default: <emphasis><parameter>lm announce</parameter> = <literal>auto</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lm announce</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lm interval</primary></indexterm><anchor id="LMINTERVAL"/><title>
lm interval (G)
</title><variablelist><varlistentry><listitem>
<para>If Samba is set to produce Lanman announce
broadcasts needed by OS/2 clients (see the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LMANNOUNCE" xlink:href="smb.conf.5.html#LMANNOUNCE">lm announce</link> parameter) then this
parameter defines the frequency in seconds with which they will be
made. If this is set to zero then no Lanman announcements will be
made despite the setting of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LMANNOUNCE" xlink:href="smb.conf.5.html#LMANNOUNCE">lm announce</link>
parameter.</para>
<para>Default: <emphasis><parameter>lm interval</parameter> = <literal>60</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lm interval</parameter> = <literal>120</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>load printers</primary></indexterm><anchor id="LOADPRINTERS"/><title>
load printers (G)
</title><variablelist><varlistentry><listitem>
<para>A boolean variable that controls whether all
printers in the printcap will be loaded for browsing by default.
See the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTERS" xlink:href="smb.conf.5.html#PRINTERS">printers</link> section for
more details.</para>
<para>Default: <emphasis><parameter>load printers</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>local master</primary></indexterm><anchor id="LOCALMASTER"/><title>
local master (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> to try and become a local master browser
on a subnet. If set to <constant>no</constant> then <literal>
nmbd</literal> will not attempt to become a local master browser
on a subnet and will also lose in all browsing elections. By
default this value is set to <constant>yes</constant>. Setting this value to
<constant>yes</constant> doesn't mean that Samba will <emphasis>become</emphasis> the
local master browser on a subnet, just that <literal>nmbd</literal>
will <emphasis>participate</emphasis> in elections for local master browser.</para>
<para>Setting this value to <constant>no</constant> will cause <literal>nmbd</literal> <emphasis>never</emphasis> to become a local
master browser.</para>
<para>Default: <emphasis><parameter>local master</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lock dir</primary><see>lock directory</see></indexterm><title>
<anchor id="LOCKDIR"/>lock dir
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="LOCKDIRECTORY">lock directory</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>lock directory</primary></indexterm><anchor id="LOCKDIRECTORY"/><title>
lock directory (G)
</title><variablelist><varlistentry><listitem>
<para>This option specifies the directory where lock
files will be placed. The lock files are used to implement the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAXCONNECTIONS" xlink:href="smb.conf.5.html#MAXCONNECTIONS">max connections</link> option.
</para>
<para>
Note: This option can not be set inside registry
configurations.
</para>
<para>Default: <emphasis><parameter>lock directory</parameter> = <literal>${prefix}/var/locks</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lock directory</parameter> = <literal>/var/run/samba/locks</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>locking</primary></indexterm><anchor id="LOCKING"/><title>
locking (S)
</title><variablelist><varlistentry><listitem>
<para>This controls whether or not locking will be
performed by the server in response to lock requests from the
client.</para>
<para>If <literal>locking = no</literal>, all lock and unlock
requests will appear to succeed and all lock queries will report
that the file in question is available for locking.</para>
<para>If <literal>locking = yes</literal>, real locking will be performed
by the server.</para>
<para>This option <emphasis>may</emphasis> be useful for read-only
filesystems which <emphasis>may</emphasis> not need locking (such as
CDROM drives), although setting this parameter of <constant>no</constant>
is not really recommended even in this case.</para>
<para>Be careful about disabling locking either globally or in a
specific service, as lack of locking may result in data corruption.
You should never need to set this parameter.</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lock spin count</primary></indexterm><anchor id="LOCKSPINCOUNT"/><title>
lock spin count (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter has been made inoperative in Samba 3.0.24.
The functionality it contolled is now controlled by the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOCKSPINTIME" xlink:href="smb.conf.5.html#LOCKSPINTIME">lock spin time</link>.
</para>
<para>Default: <emphasis><parameter>lock spin count</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lock spin time</primary></indexterm><anchor id="LOCKSPINTIME"/><title>
lock spin time (G)
</title><variablelist><varlistentry><listitem>
<para>The time in microseconds that smbd should
keep waiting to see if a failed lock request can
be granted. This parameter has changed in default
value from Samba 3.0.23 from 10 to 200. The associated
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOCKSPINCOUNT" xlink:href="smb.conf.5.html#LOCKSPINCOUNT">lock spin count</link> parameter is
no longer used in Samba 3.0.24. You should not need
to change the value of this parameter.</para>
<para>Default: <emphasis><parameter>lock spin time</parameter> = <literal>200</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>log file</primary></indexterm><anchor id="LOGFILE"/><title>
log file (G)
</title><variablelist><varlistentry><listitem>
<para>
This option allows you to override the name of the Samba log file (also known as the debug file).
</para>
<para>
This option takes the standard substitutions, allowing you to have separate log files for each user or machine.
</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>log file</parameter> = <literal>/usr/local/samba/var/log.%m</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>debuglevel</primary><see>log level</see></indexterm><title>
<anchor id="DEBUGLEVEL"/>debuglevel
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="LOGLEVEL">log level</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>log level</primary></indexterm><anchor id="LOGLEVEL"/><title>
log level (G)
</title><variablelist><varlistentry><listitem>
<para>
The value of the parameter (a astring) allows the debug level (logging level) to be specified in the
<filename moreinfo="none">smb.conf</filename> file.
</para>
<para>This parameter has been extended since the 2.2.x
series, now it allows to specify the debug level for multiple
debug classes. This is to give greater flexibility in the configuration
of the system. The following debug classes are currently implemented:
</para>
<itemizedlist>
<listitem><para><parameter moreinfo="none">all</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">tdb</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">printdrivers</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">lanman</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">smb</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">rpc_parse</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">rpc_srv</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">rpc_cli</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">passdb</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">sam</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">auth</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">winbind</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">vfs</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">idmap</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">quota</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">acls</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">locking</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">msdfs</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">dmapi</parameter></para></listitem>
<listitem><para><parameter moreinfo="none">registry</parameter></para></listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>log level</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>log level</parameter> = <literal>3 passdb:5 auth:10 winbind:2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>logon drive</primary></indexterm><anchor id="LOGONDRIVE"/><title>
logon drive (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the local path to which the home directory will be
connected (see <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONHOME" xlink:href="smb.conf.5.html#LOGONHOME">logon home</link>) and is only used by NT
Workstations.
</para>
<para>
Note that this option is only useful if Samba is set up as a logon server.
</para>
<para>Default: <emphasis><parameter>logon drive</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>logon drive</parameter> = <literal>h:</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>logon home</primary></indexterm><anchor id="LOGONHOME"/><title>
logon home (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the home directory location when a Win95/98 or NT Workstation logs into a Samba PDC.
It allows you to do
</para>
<para>
<prompt moreinfo="none">C:\></prompt><userinput moreinfo="none">NET USE H: /HOME</userinput>
</para>
<para>
from a command prompt, for example.
</para>
<para>
This option takes the standard substitutions, allowing you to have separate logon scripts for each user or machine.
</para>
<para>
This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a
subdirectory of the user's home directory. This is done in the following way:
</para>
<para>
<literal>logon home = \\%N\%U\profile</literal>
</para>
<para>
This tells Samba to return the above string, with substitutions made when a client requests the info, generally
in a NetUserGetInfo request. Win9X clients truncate the info to \\server\share when a user does
<literal>net use /home</literal> but use the whole string when dealing with profiles.
</para>
<para>
Note that in prior versions of Samba, the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONPATH" xlink:href="smb.conf.5.html#LOGONPATH">logon path</link> was returned rather than
<parameter moreinfo="none">logon home</parameter>. This broke <literal>net use /home</literal>
but allowed profiles outside the home directory. The current implementation is correct, and can be used for
profiles if you use the above trick.
</para>
<para>
Disable this feature by setting <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONHOME" xlink:href="smb.conf.5.html#LOGONHOME">logon home = ""</link> - using the empty string.
</para>
<para>
This option is only useful if Samba is set up as a logon server.
</para>
<para>Default: <emphasis><parameter>logon home</parameter> = <literal>\\%N\%U</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>logon home</parameter> = <literal>\\remote_smb_server\%U</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>logon path</primary></indexterm><anchor id="LOGONPATH"/><title>
logon path (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the directory where roaming profiles (Desktop, NTuser.dat, etc) are
stored. Contrary to previous versions of these manual pages, it has nothing to do with Win 9X roaming
profiles. To find out how to handle roaming profiles for Win 9X system, see the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONHOME" xlink:href="smb.conf.5.html#LOGONHOME">logon home</link> parameter.
</para>
<para>
This option takes the standard substitutions, allowing you to have separate logon scripts for each user or
machine. It also specifies the directory from which the "Application Data", <filename moreinfo="none">desktop</filename>, <filename moreinfo="none">start menu</filename>, <filename moreinfo="none">network neighborhood</filename>, <filename moreinfo="none">programs</filename> and other
folders, and their contents, are loaded and displayed on your Windows NT client.
</para>
<para>
The share and the path must be readable by the user for the preferences and directories to be loaded onto the
Windows NT client. The share must be writeable when the user logs in for the first time, in order that the
Windows NT client can create the NTuser.dat and other directories.
Thereafter, the directories and any of the contents can, if required, be made read-only. It is not advisable
that the NTuser.dat file be made read-only - rename it to NTuser.man to achieve the desired effect (a
<emphasis>MAN</emphasis>datory profile).
</para>
<para>
Windows clients can sometimes maintain a connection to the [homes] share, even though there is no user logged
in. Therefore, it is vital that the logon path does not include a reference to the homes share (i.e. setting
this parameter to \\%N\homes\profile_path will cause problems).
</para>
<para>
This option takes the standard substitutions, allowing you to have separate logon scripts for each user or machine.
</para>
<warning><para>
Do not quote the value. Setting this as <quote>\\%N\profile\%U</quote>
will break profile handling. Where the tdbsam or ldapsam passdb backend
is used, at the time the user account is created the value configured
for this parameter is written to the passdb backend and that value will
over-ride the parameter value present in the smb.conf file. Any error
present in the passdb backend account record must be editted using the
appropriate tool (pdbedit on the command-line, or any other locally
provided system tool).
</para></warning>
<para>Note that this option is only useful if Samba is set up as a domain controller.</para>
<para>
Disable the use of roaming profiles by setting the value of this parameter to the empty string. For
example, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONPATH" xlink:href="smb.conf.5.html#LOGONPATH">logon path = ""</link>. Take note that even if the default setting
in the smb.conf file is the empty string, any value specified in the user account settings in the passdb
backend will over-ride the effect of setting this parameter to null. Disabling of all roaming profile use
requires that the user account settings must also be blank.
</para>
<para>
An example of use is:
<programlisting>
logon path = \\PROFILESERVER\PROFILE\%U
</programlisting>
</para>
<para>Default: <emphasis><parameter>logon path</parameter> = <literal>\\%N\%U\profile</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>logon script</primary></indexterm><anchor id="LOGONSCRIPT"/><title>
logon script (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the batch file (<filename>.bat</filename>) or NT command file
(<filename>.cmd</filename>) to be downloaded and run on a machine when a user successfully logs in. The file
must contain the DOS style CR/LF line endings. Using a DOS-style editor to create the file is recommended.
</para>
<para>
The script must be a relative path to the <parameter>[netlogon]</parameter> service. If the [netlogon]
service specifies a <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PATH" xlink:href="smb.conf.5.html#PATH">path</link> of <filename moreinfo="none">/usr/local/samba/netlogon</filename>, and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOGONSCRIPT" xlink:href="smb.conf.5.html#LOGONSCRIPT">logon script = STARTUP.BAT</link>, then the file that will be downloaded is:
<programlisting>
/usr/local/samba/netlogon/STARTUP.BAT
</programlisting>
</para>
<para>
The contents of the batch file are entirely your choice. A suggested command would be to add <literal>NET TIME \\SERVER /SET /YES</literal>, to force every machine to synchronize clocks with the
same time server. Another use would be to add <literal>NET USE U: \\SERVER\UTILS</literal>
for commonly used utilities, or
<programlisting>
<userinput>NET USE Q: \\SERVER\ISO9001_QA</userinput>
</programlisting>
for example.
</para>
<para>
Note that it is particularly important not to allow write access to the [netlogon] share, or to grant users
write permission on the batch files in a secure environment, as this would allow the batch files to be
arbitrarily modified and security to be breached.
</para>
<para>
This option takes the standard substitutions, allowing you to have separate logon scripts for each user or
machine.
</para>
<para>
This option is only useful if Samba is set up as a logon server.
</para>
<para>Default: <emphasis><parameter>logon script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>logon script</parameter> = <literal>scripts\%U.bat</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lppause command</primary></indexterm><anchor id="LPPAUSECOMMAND"/><title>
lppause command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to stop printing or spooling
a specific print job.</para>
<para>This command should be a program or script which takes
a printer name and job number to pause the print job. One way
of implementing this is by using job priorities, where jobs
having a too low priority won't be sent to the printer.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. A <parameter moreinfo="none">%j</parameter> is replaced with
the job number (an integer). On HPUX (see <parameter moreinfo="none">printing=hpux
</parameter>), if the <parameter moreinfo="none">-p%p</parameter> option is added
to the lpq command, the job will show up with the correct status, i.e.
if the job priority is lower than the set fence priority it will
have the PAUSED status, whereas if the priority is equal or higher it
will have the SPOOLED or PRINTING status.</para>
<para>Note that it is good practice to include the absolute path
in the lppause command as the PATH may not be available to the server.</para>
<para>Default: <emphasis><parameter>lppause command</parameter> = <literal>
# Currently no default value is given to
this string, unless the value of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link>
parameter is <constant>SYSV</constant>, in which case the default is :
<literal>lp -i %p-%j -H hold</literal> or if the value of the
<parameter moreinfo="none">printing</parameter> parameter is
<constant>SOFTQ</constant>, then the default is:
<literal>qstat -s -j%j -h</literal>. </literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lppause command</parameter> = <literal>/usr/bin/lpalt %p-%j -p0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lpq cache time</primary></indexterm><anchor id="LPQCACHETIME"/><title>
lpq cache time (G)
</title><variablelist><varlistentry><listitem>
<para>This controls how long lpq info will be cached
for to prevent the <literal>lpq</literal> command being called too
often. A separate cache is kept for each variation of the <literal>
lpq</literal> command used by the system, so if you use different
<literal>lpq</literal> commands for different users then they won't
share cache information.</para>
<para>The cache files are stored in <filename moreinfo="none">/tmp/lpq.xxxx</filename>
where xxxx is a hash of the <literal>lpq</literal> command in use.</para>
<para>The default is 30 seconds, meaning that the cached results
of a previous identical <literal>lpq</literal> command will be used
if the cached data is less than 30 seconds old. A large value may
be advisable if your <literal>lpq</literal> command is very slow.</para>
<para>A value of 0 will disable caching completely.</para>
<para>Default: <emphasis><parameter>lpq cache time</parameter> = <literal>30</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lpq cache time</parameter> = <literal>10</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lpq command</primary></indexterm><anchor id="LPQCOMMAND"/><title>
lpq command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to obtain <literal>lpq
</literal>-style printer status information.</para>
<para>This command should be a program or script which
takes a printer name as its only parameter and outputs printer
status information.</para>
<para>Currently nine styles of printer status information
are supported; BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, CUPS, and SOFTQ.
This covers most UNIX systems. You control which type is expected
using the <parameter moreinfo="none">printing =</parameter> option.</para>
<para>Some clients (notably Windows for Workgroups) may not
correctly send the connection number for the printer they are
requesting status information about. To get around this, the
server reports on the first printer service connected to by the
client. This only happens if the connection number sent is invalid.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. Otherwise it is placed at the end of the
command.</para>
<para>Note that it is good practice to include the absolute path
in the <parameter moreinfo="none">lpq command</parameter> as the <envar>$PATH
</envar> may not be available to the server. When compiled with
the CUPS libraries, no <parameter moreinfo="none">lpq command</parameter> is
needed because smbd will make a library call to obtain the
print queue listing.</para>
<para>Default: <emphasis><parameter>lpq command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>lpq command</parameter> = <literal>/usr/bin/lpq -P%p</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lpresume command</primary></indexterm><anchor id="LPRESUMECOMMAND"/><title>
lpresume command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to restart or continue
printing or spooling a specific print job.</para>
<para>This command should be a program or script which takes
a printer name and job number to resume the print job. See
also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LPPAUSECOMMAND" xlink:href="smb.conf.5.html#LPPAUSECOMMAND">lppause command</link> parameter.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. A <parameter moreinfo="none">%j</parameter> is replaced with
the job number (an integer).</para>
<para>Note that it is good practice to include the absolute path
in the <parameter moreinfo="none">lpresume command</parameter> as the PATH may not
be available to the server.</para>
<para>See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link> parameter.</para>
<para>Default: Currently no default value is given
to this string, unless the value of the <parameter moreinfo="none">printing</parameter>
parameter is <constant>SYSV</constant>, in which case the default is:</para>
<para><literal>lp -i %p-%j -H resume</literal></para>
<para>or if the value of the <parameter moreinfo="none">printing</parameter> parameter
is <constant>SOFTQ</constant>, then the default is:</para>
<para><literal>qstat -s -j%j -r</literal></para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>lpresume command</parameter> = <literal>/usr/bin/lpalt %p-%j -p2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>lprm command</primary></indexterm><anchor id="LPRMCOMMAND"/><title>
lprm command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to delete a print job.</para>
<para>This command should be a program or script which takes
a printer name and job number, and deletes the print job.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. A <parameter moreinfo="none">%j</parameter> is replaced with
the job number (an integer).</para>
<para>Note that it is good practice to include the absolute
path in the <parameter moreinfo="none">lprm command</parameter> as the PATH may not be
available to the server.</para>
<para>
Examples of use are:
<programlisting>
lprm command = /usr/bin/lprm -P%p %j
or
lprm command = /usr/bin/cancel %p-%j
</programlisting>
</para>
<para>Default: <emphasis><parameter>lprm command</parameter> = <literal> determined by printing parameter</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>machine password timeout</primary></indexterm><anchor id="MACHINEPASSWORDTIMEOUT"/><title>
machine password timeout (G)
</title><variablelist><varlistentry><listitem>
<para>
If a Samba server is a member of a Windows NT Domain (see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = domain</link> parameter) then periodically a running smbd process will try and change
the MACHINE ACCOUNT PASSWORD stored in the TDB called <filename moreinfo="none">private/secrets.tdb
</filename>. This parameter specifies how often this password will be changed, in seconds. The default is one
week (expressed in seconds), the same as a Windows NT Domain member server.
</para>
<para>
See also <citerefentry><refentrytitle>smbpasswd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>,
and the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = domain</link> parameter.
</para>
<para>Default: <emphasis><parameter>machine password timeout</parameter> = <literal>604800</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>magic output</primary></indexterm><anchor id="MAGICOUTPUT"/><title>
magic output (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the name of a file which will contain output created by a magic script (see the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAGICSCRIPT" xlink:href="smb.conf.5.html#MAGICSCRIPT">magic script</link> parameter below).
</para>
<warning><para>If two clients use the same <parameter moreinfo="none">magic script
</parameter> in the same directory the output file content is undefined.
</para></warning>
<para>Default: <emphasis><parameter>magic output</parameter> = <literal><magic script name>.out</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>magic output</parameter> = <literal>myfile.txt</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>magic script</primary></indexterm><anchor id="MAGICSCRIPT"/><title>
magic script (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the name of a file which,
if opened, will be executed by the server when the file is closed.
This allows a UNIX script to be sent to the Samba host and
executed on behalf of the connected user.</para>
<para>Scripts executed in this way will be deleted upon
completion assuming that the user has the appropriate level
of privilege and the file permissions allow the deletion.</para>
<para>If the script generates output, output will be sent to
the file specified by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAGICOUTPUT" xlink:href="smb.conf.5.html#MAGICOUTPUT">magic output</link>
parameter (see above).</para>
<para>Note that some shells are unable to interpret scripts
containing CR/LF instead of CR as
the end-of-line marker. Magic scripts must be executable
<emphasis>as is</emphasis> on the host, which for some hosts and
some shells will require filtering at the DOS end.</para>
<para>Magic scripts are <emphasis>EXPERIMENTAL</emphasis> and
should <emphasis>NOT</emphasis> be relied upon.</para>
<para>Default: <emphasis><parameter>magic script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>magic script</parameter> = <literal>user.csh</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>mangled names</primary></indexterm><anchor id="MANGLEDNAMES"/><title>
mangled names (S)
</title><variablelist><varlistentry><listitem>
<para>This controls whether non-DOS names under UNIX
should be mapped to DOS-compatible names ("mangled") and made visible,
or whether non-DOS names should simply be ignored.</para>
<para>See the section on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NAMEMANGLING" xlink:href="smb.conf.5.html#NAMEMANGLING">name mangling</link> for
details on how to control the mangling process.</para>
<para>If mangling is used then the mangling algorithm is as follows:</para>
<itemizedlist>
<listitem>
<para>The first (up to) five alphanumeric characters
before the rightmost dot of the filename are preserved, forced
to upper case, and appear as the first (up to) five characters
of the mangled name.</para>
</listitem>
<listitem>
<para>A tilde "~" is appended to the first part of the mangled
name, followed by a two-character unique sequence, based on the
original root name (i.e., the original filename minus its final
extension). The final extension is included in the hash calculation
only if it contains any upper case characters or is longer than three
characters.</para>
<para>Note that the character to use may be specified using
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MANGLINGCHAR" xlink:href="smb.conf.5.html#MANGLINGCHAR">mangling char</link>
option, if you don't like '~'.</para>
</listitem>
<listitem>
<para>Files whose UNIX name begins with a dot will be
presented as DOS hidden files. The mangled name will be created as
for other filenames, but with the leading dot removed and "___" as
its extension regardless of actual original extension (that's three
underscores).</para>
</listitem>
</itemizedlist>
<para>The two-digit hash value consists of upper case alphanumeric characters.</para>
<para>This algorithm can cause name collisions only if files
in a directory share the same first five alphanumeric characters.
The probability of such a clash is 1/1300.</para>
<para>The name mangling (if enabled) allows a file to be
copied between UNIX directories from Windows/DOS while retaining
the long UNIX filename. UNIX files can be renamed to a new extension
from Windows/DOS and will retain the same basename. Mangled names
do not change between sessions.</para>
<para>Default: <emphasis><parameter>mangled names</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>mangle prefix</primary></indexterm><anchor id="MANGLEPREFIX"/><title>
mangle prefix (G)
</title><variablelist><varlistentry><listitem>
<para> controls the number of prefix
characters from the original name used when generating
the mangled names. A larger value will give a weaker
hash and therefore more name collisions. The minimum
value is 1 and the maximum value is 6.</para>
<para>
mangle prefix is effective only when mangling method is hash2.
</para>
<para>Default: <emphasis><parameter>mangle prefix</parameter> = <literal>1</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>mangle prefix</parameter> = <literal>4</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>mangling char</primary></indexterm><anchor id="MANGLINGCHAR"/><title>
mangling char (S)
</title><variablelist><varlistentry><listitem>
<para>This controls what character is used as
the <emphasis>magic</emphasis> character in <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NAMEMANGLING" xlink:href="smb.conf.5.html#NAMEMANGLING">name mangling</link>. The
default is a '~' but this may interfere with some software. Use this option to set
it to whatever you prefer. This is effective only when mangling method is hash.</para>
<para>Default: <emphasis><parameter>mangling char</parameter> = <literal>~</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>mangling char</parameter> = <literal>^</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>mangling method</primary></indexterm><anchor id="MANGLINGMETHOD"/><title>
mangling method (G)
</title><variablelist><varlistentry><listitem>
<para> controls the algorithm used for the generating
the mangled names. Can take two different values, "hash" and
"hash2". "hash" is the algorithm that was used
used in Samba for many years and was the default in Samba 2.2.x "hash2" is
now the default and is newer and considered a better algorithm (generates less collisions) in
the names. Many Win32 applications store the mangled names and so
changing to algorithms must not be done lightly as these applications
may break unless reinstalled.</para>
<para>Default: <emphasis><parameter>mangling method</parameter> = <literal>hash2</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>mangling method</parameter> = <literal>hash</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map acl inherit</primary></indexterm><anchor id="MAPACLINHERIT"/><title>
map acl inherit (S)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will attempt to map the 'inherit' and 'protected'
access control entry flags stored in Windows ACLs into an extended attribute
called user.SAMBA_PAI. This parameter only takes effect if Samba is being run
on a platform that supports extended attributes (Linux and IRIX so far) and
allows the Windows 2000 ACL editor to correctly use inheritance with the Samba
POSIX ACL mapping code.
</para>
<para>Default: <emphasis><parameter>map acl inherit</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map archive</primary></indexterm><anchor id="MAPARCHIVE"/><title>
map archive (S)
</title><variablelist><varlistentry><listitem>
<para>
This controls whether the DOS archive attribute
should be mapped to the UNIX owner execute bit. The DOS archive bit
is set when a file has been modified since its last backup. One
motivation for this option is to keep Samba/your PC from making
any file it touches from becoming executable under UNIX. This can
be quite annoying for shared source code, documents, etc...
</para>
<para>
Note that this requires the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link> parameter to be set such that owner
execute bit is not masked out (i.e. it must include 100). See the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link> for details.
</para>
<para>Default: <emphasis><parameter>map archive</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map hidden</primary></indexterm><anchor id="MAPHIDDEN"/><title>
map hidden (S)
</title><variablelist><varlistentry><listitem>
<para>
This controls whether DOS style hidden files should be mapped to the UNIX world execute bit.
</para>
<para>
Note that this requires the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link> to be set such that the world execute
bit is not masked out (i.e. it must include 001). See the parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link>
for details.
</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map read only</primary></indexterm><anchor id="MAPREADONLY"/><title>
map read only (S)
</title><variablelist><varlistentry><listitem>
<para>
This controls how the DOS read only attribute should be mapped from a UNIX filesystem.
</para>
<para>
This parameter can take three different values, which tell <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> how to display the read only attribute on files, where either
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="STOREDOSATTRIBUTES" xlink:href="smb.conf.5.html#STOREDOSATTRIBUTES">store dos attributes</link> is set to <constant>No</constant>, or no extended attribute is
present. If <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="STOREDOSATTRIBUTES" xlink:href="smb.conf.5.html#STOREDOSATTRIBUTES">store dos attributes</link> is set to <constant>yes</constant> then this
parameter is <emphasis>ignored</emphasis>. This is a new parameter introduced in Samba version 3.0.21.
</para>
<para>The three settings are :</para>
<itemizedlist>
<listitem><para>
<constant>Yes</constant> - The read only DOS attribute is mapped to the inverse of the user
or owner write bit in the unix permission mode set. If the owner write bit is not set, the
read only attribute is reported as being set on the file.
If the read only DOS attribute is set, Samba sets the owner, group and
others write bits to zero. Write bits set in an ACL are ignored by Samba.
If the read only DOS attribute is unset, Samba simply sets the write bit of the
owner to one.
</para></listitem>
<listitem><para>
<constant>Permissions</constant> - The read only DOS attribute is mapped to the effective permissions of
the connecting user, as evaluated by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> by reading the unix permissions and POSIX ACL (if present).
If the connecting user does not have permission to modify the file, the read only attribute
is reported as being set on the file.
</para></listitem>
<listitem><para>
<constant>No</constant> - The read only DOS attribute is unaffected by permissions, and can only be set by
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="STOREDOSATTRIBUTES" xlink:href="smb.conf.5.html#STOREDOSATTRIBUTES">store dos attributes</link> method. This may be useful for exporting mounted CDs.
</para></listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>map read only</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map system</primary></indexterm><anchor id="MAPSYSTEM"/><title>
map system (S)
</title><variablelist><varlistentry><listitem>
<para>
This controls whether DOS style system files should be mapped to the UNIX group execute bit.
</para>
<para>
Note that this requires the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link> to be set such that the group
execute bit is not masked out (i.e. it must include 010). See the parameter
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CREATEMASK" xlink:href="smb.conf.5.html#CREATEMASK">create mask</link> for details.
</para>
<para>Default: <emphasis><parameter>map system</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>map to guest</primary></indexterm><anchor id="MAPTOGUEST"/><title>
map to guest (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is only useful in <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">SECURITY =
security</link> modes other than <parameter moreinfo="none">security = share</parameter>
and <parameter moreinfo="none">security = server</parameter>
- i.e. <constant>user</constant>, and <constant>domain</constant>.</para>
<para>This parameter can take four different values, which tell
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> what to do with user
login requests that don't match a valid UNIX user in some way.</para>
<para>The four settings are :</para>
<itemizedlist>
<listitem>
<para><constant>Never</constant> - Means user login
requests with an invalid password are rejected. This is the
default.</para>
</listitem>
<listitem>
<para><constant>Bad User</constant> - Means user
logins with an invalid password are rejected, unless the username
does not exist, in which case it is treated as a guest login and
mapped into the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>.</para>
</listitem>
<listitem>
<para><constant>Bad Password</constant> - Means user logins
with an invalid password are treated as a guest login and mapped
into the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>. Note that
this can cause problems as it means that any user incorrectly typing
their password will be silently logged on as "guest" - and
will not know the reason they cannot access files they think
they should - there will have been no message given to them
that they got their password wrong. Helpdesk services will
<emphasis>hate</emphasis> you if you set the <parameter moreinfo="none">map to
guest</parameter> parameter this way :-).</para>
</listitem>
<listitem>
<para><constant>Bad Uid</constant> - Is only applicable when Samba is configured
in some type of domain mode security (security = {domain|ads}) and means that
user logins which are successfully authenticated but which have no valid Unix
user account (and smbd is unable to create one) should be mapped to the defined
guest account. This was the default behavior of Samba 2.x releases. Note that
if a member server is running winbindd, this option should never be required
because the nss_winbind library will export the Windows domain users and groups
to the underlying OS via the Name Service Switch interface.</para>
</listitem>
</itemizedlist>
<para>Note that this parameter is needed to set up "Guest"
share services when using <parameter moreinfo="none">security</parameter> modes other than
share and server. This is because in these modes the name of the resource being
requested is <emphasis>not</emphasis> sent to the server until after
the server has successfully authenticated the client so the server
cannot make authentication decisions at the correct time (connection
to the share) for "Guest" shares. This parameter is not useful with
<parameter moreinfo="none">security = server</parameter> as in this security mode
no information is returned about whether a user logon failed due to
a bad username or bad password, the same error is returned from a modern server
in both cases.</para>
<para>For people familiar with the older Samba releases, this
parameter maps to the old compile-time setting of the <constant>
GUEST_SESSSETUP</constant> value in local.h.</para>
<para>Default: <emphasis><parameter>map to guest</parameter> = <literal>Never</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>map to guest</parameter> = <literal>Bad User</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max connections</primary></indexterm><anchor id="MAXCONNECTIONS"/><title>
max connections (S)
</title><variablelist><varlistentry><listitem>
<para>This option allows the number of simultaneous connections to a service to be limited.
If <parameter moreinfo="none">max connections</parameter> is greater than 0 then connections
will be refused if this number of connections to the service are already open. A value
of zero mean an unlimited number of connections may be made.</para>
<para>Record lock files are used to implement this feature. The lock files will be stored in
the directory specified by the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOCKDIRECTORY" xlink:href="smb.conf.5.html#LOCKDIRECTORY">lock directory</link> option.</para>
<para>Default: <emphasis><parameter>max connections</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max connections</parameter> = <literal>10</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max disk size</primary></indexterm><anchor id="MAXDISKSIZE"/><title>
max disk size (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows you to put an upper limit
on the apparent size of disks. If you set this option to 100
then all shares will appear to be not larger than 100 MB in
size.</para>
<para>Note that this option does not limit the amount of
data you can put on the disk. In the above case you could still
store much more than 100 MB on the disk, but if a client ever asks
for the amount of free disk space or the total disk size then the
result will be bounded by the amount specified in <parameter moreinfo="none">max
disk size</parameter>.</para>
<para>This option is primarily useful to work around bugs
in some pieces of software that can't handle very large disks,
particularly disks over 1GB in size.</para>
<para>A <parameter moreinfo="none">max disk size</parameter> of 0 means no limit.</para>
<para>Default: <emphasis><parameter>max disk size</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max disk size</parameter> = <literal>1000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max log size</primary></indexterm><anchor id="MAXLOGSIZE"/><title>
max log size (G)
</title><variablelist><varlistentry><listitem>
<para>
This option (an integer in kilobytes) specifies the max size the log file should grow to.
Samba periodically checks the size and if it is exceeded it will rename the file, adding
a <filename moreinfo="none">.old</filename> extension.
</para>
<para>A size of 0 means no limit.
</para>
<para>Default: <emphasis><parameter>max log size</parameter> = <literal>5000</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max log size</parameter> = <literal>1000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max mux</primary></indexterm><anchor id="MAXMUX"/><title>
max mux (G)
</title><variablelist><varlistentry><listitem>
<para>This option controls the maximum number of
outstanding simultaneous SMB operations that Samba tells the client
it will allow. You should never need to set this parameter.</para>
<para>Default: <emphasis><parameter>max mux</parameter> = <literal>50</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max open files</primary></indexterm><anchor id="MAXOPENFILES"/><title>
max open files (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter limits the maximum number of
open files that one <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> file
serving process may have open for a client at any one time. The
default for this parameter is set very high (10,000) as Samba uses
only one bit per unopened file.</para>
<para>The limit of the number of open files is usually set
by the UNIX per-process file descriptor limit rather than
this parameter so you should never need to touch this parameter.</para>
<para>Default: <emphasis><parameter>max open files</parameter> = <literal>10000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max print jobs</primary></indexterm><anchor id="MAXPRINTJOBS"/><title>
max print jobs (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter limits the maximum number of
jobs allowable in a Samba printer queue at any given moment.
If this number is exceeded, <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will remote "Out of Space" to the client.
</para>
<para>Default: <emphasis><parameter>max print jobs</parameter> = <literal>1000</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max print jobs</parameter> = <literal>5000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>protocol</primary><see>max protocol</see></indexterm><title>
<anchor id="PROTOCOL"/>protocol
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="MAXPROTOCOL">max protocol</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>max protocol</primary></indexterm><anchor id="MAXPROTOCOL"/><title>
max protocol (G)
</title><variablelist><varlistentry><listitem>
<para>The value of the parameter (a string) is the highest
protocol level that will be supported by the server.</para>
<para>Possible values are :</para>
<itemizedlist>
<listitem>
<para><constant>CORE</constant>: Earliest version. No
concept of user names.</para>
</listitem>
<listitem>
<para><constant>COREPLUS</constant>: Slight improvements on
CORE for efficiency.</para>
</listitem>
<listitem>
<para><constant>LANMAN1</constant>: First <emphasis>
modern</emphasis> version of the protocol. Long filename
support.</para>
</listitem>
<listitem>
<para><constant>LANMAN2</constant>: Updates to Lanman1 protocol.</para>
</listitem>
<listitem>
<para><constant>NT1</constant>: Current up to date version of the protocol.
Used by Windows NT. Known as CIFS.</para>
</listitem>
</itemizedlist>
<para>Normally this option should not be set as the automatic
negotiation phase in the SMB protocol takes care of choosing
the appropriate protocol.</para>
<para>Default: <emphasis><parameter>max protocol</parameter> = <literal>NT1</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max protocol</parameter> = <literal>LANMAN1</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max reported print jobs</primary></indexterm><anchor id="MAXREPORTEDPRINTJOBS"/><title>
max reported print jobs (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter limits the maximum number of jobs displayed in a port monitor for
Samba printer queue at any given moment. If this number is exceeded, the excess
jobs will not be shown. A value of zero means there is no limit on the number of
print jobs reported.
</para>
<para>Default: <emphasis><parameter>max reported print jobs</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max reported print jobs</parameter> = <literal>1000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max smbd processes</primary></indexterm><anchor id="MAXSMBDPROCESSES"/><title>
max smbd processes (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter limits the maximum number of <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> processes concurrently running on a system and is intended
as a stopgap to prevent degrading service to clients in the event that the server has insufficient
resources to handle more than this number of connections. Remember that under normal operating
conditions, each user will have an <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> associated with him or her to handle connections to all
shares from a given host.</para>
<para>Default: <emphasis><parameter>max smbd processes</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max smbd processes</parameter> = <literal>1000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max stat cache size</primary></indexterm><anchor id="MAXSTATCACHESIZE"/><title>
max stat cache size (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter limits the size in memory of any
<parameter moreinfo="none">stat cache</parameter> being used
to speed up case insensitive name mappings. It represents
the number of kilobyte (1024) units the stat cache can use.
A value of zero, meaning unlimited, is not advisable due to
increased memory useage. You should not need to change this
parameter.
</para>
<para>Default: <emphasis><parameter>max stat cache size</parameter> = <literal>256</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max stat cache size</parameter> = <literal>100</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max ttl</primary></indexterm><anchor id="MAXTTL"/><title>
max ttl (G)
</title><variablelist><varlistentry><listitem>
<para>This option tells <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> what the default 'time to live'
of NetBIOS names should be (in seconds) when <literal>nmbd</literal> is
requesting a name using either a broadcast packet or from a WINS server. You should
never need to change this parameter. The default is 3 days.</para>
<para>Default: <emphasis><parameter>max ttl</parameter> = <literal>259200</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max wins ttl</primary></indexterm><anchor id="MAXWINSTTL"/><title>
max wins ttl (G)
</title><variablelist><varlistentry><listitem>
<para>This option tells <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when acting as a WINS server
(<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WINSSUPPORT" xlink:href="smb.conf.5.html#WINSSUPPORT">wins support = yes</link>) what the maximum
'time to live' of NetBIOS names that <literal>nmbd</literal>
will grant will be (in seconds). You should never need to change this
parameter. The default is 6 days (518400 seconds).</para>
<para>Default: <emphasis><parameter>max wins ttl</parameter> = <literal>518400</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>max xmit</primary></indexterm><anchor id="MAXXMIT"/><title>
max xmit (G)
</title><variablelist><varlistentry><listitem>
<para>This option controls the maximum packet size
that will be negotiated by Samba. The default is 16644, which
matches the behavior of Windows 2000. A value below 2048 is likely to cause problems.
You should never need to change this parameter from its default value.
</para>
<para>Default: <emphasis><parameter>max xmit</parameter> = <literal>16644</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>max xmit</parameter> = <literal>8192</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>message command</primary></indexterm><anchor id="MESSAGECOMMAND"/><title>
message command (G)
</title><variablelist><varlistentry><listitem>
<para>This specifies what command to run when the
server receives a WinPopup style message.</para>
<para>This would normally be a command that would
deliver the message somehow. How this is to be done is
up to your imagination.</para>
<para>An example is:
<programlisting>
<literal>message command = csh -c 'xedit %s;rm %s' &</literal>
</programlisting>
</para>
<para>This delivers the message using <literal>xedit</literal>, then
removes it afterwards. <emphasis>NOTE THAT IT IS VERY IMPORTANT
THAT THIS COMMAND RETURN IMMEDIATELY</emphasis>. That's why I
have the '&' on the end. If it doesn't return immediately then
your PCs may freeze when sending messages (they should recover
after 30 seconds, hopefully).</para>
<para>All messages are delivered as the global guest user.
The command takes the standard substitutions, although <parameter moreinfo="none">
%u</parameter> won't work (<parameter moreinfo="none">%U</parameter> may be better
in this case).</para>
<para>Apart from the standard substitutions, some additional
ones apply. In particular:</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">%s</parameter> = the filename containing
the message.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">%t</parameter> = the destination that
the message was sent to (probably the server name).</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">%f</parameter> = who the message
is from.</para>
</listitem>
</itemizedlist>
<para>You could make this command send mail, or whatever else
takes your fancy. Please let us know of any really interesting
ideas you have.</para>
<para>
Here's a way of sending the messages as mail to root:
<programlisting>
<literal>message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s</literal>
</programlisting>
</para>
<para>If you don't have a message command then the message
won't be delivered and Samba will tell the sender there was
an error. Unfortunately WfWg totally ignores the error code
and carries on regardless, saying that the message was delivered.
</para>
<para>
If you want to silently delete it then try:
<programlisting>
<literal>message command = rm %s</literal>
</programlisting>
</para>
<para>Default: <emphasis><parameter>message command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>message command</parameter> = <literal>csh -c 'xedit %s; rm %s' &</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>min print space</primary></indexterm><anchor id="MINPRINTSPACE"/><title>
min print space (S)
</title><variablelist><varlistentry><listitem>
<para>This sets the minimum amount of free disk
space that must be available before a user will be able to spool
a print job. It is specified in kilobytes. The default is 0, which
means a user can always spool a print job.</para>
<para>Default: <emphasis><parameter>min print space</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>min print space</parameter> = <literal>2000</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>min protocol</primary></indexterm><anchor id="MINPROTOCOL"/><title>
min protocol (G)
</title><variablelist><varlistentry><listitem>
<para>The value of the parameter (a string) is the
lowest SMB protocol dialect than Samba will support. Please refer
to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAXPROTOCOL" xlink:href="smb.conf.5.html#MAXPROTOCOL">max protocol</link>
parameter for a list of valid protocol names and a brief description
of each. You may also wish to refer to the C source code in
<filename moreinfo="none">source/smbd/negprot.c</filename> for a listing of known protocol
dialects supported by clients.</para>
<para>If you are viewing this parameter as a security measure, you should
also refer to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LANMANAUTH" xlink:href="smb.conf.5.html#LANMANAUTH">lanman auth</link> parameter. Otherwise, you should never need
to change this parameter.</para>
<para>Default: <emphasis><parameter>min protocol</parameter> = <literal>CORE</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>min protocol</parameter> = <literal>NT1</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>min receivefile size</primary></indexterm><anchor id="MINRECEIVEFILESIZE"/><title>
min receivefile size (G)
</title><variablelist><varlistentry><listitem>
<para>This option changes the behavior of <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> when processing SMBwriteX calls. Any incoming
SMBwriteX call on a non-signed SMB/CIFS connection greater than this value will not be processed in the normal way but will
be passed to any underlying kernel recvfile or splice system call (if there is no such
call Samba will emulate in user space). This allows zero-copy writes directly from network
socket buffers into the filesystem buffer cache, if available. It may improve performance
but user testing is recommended. If set to zero Samba processes SMBwriteX calls in the
normal way. To enable POSIX large write support (SMB/CIFS writes up to 16Mb) this option must be
nonzero. The maximum value is 128k. Values greater than 128k will be silently set to 128k.</para>
<para>Note this option will have NO EFFECT if set on a SMB signed connection.</para>
<para>The default is zero, which diables this option.</para>
<para>Default: <emphasis><parameter>min receivefile size</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>min wins ttl</primary></indexterm><anchor id="MINWINSTTL"/><title>
min wins ttl (G)
</title><variablelist><varlistentry><listitem>
<para>This option tells <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>
when acting as a WINS server (<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WINSSUPPORT" xlink:href="smb.conf.5.html#WINSSUPPORT">wins support = yes</link>) what the minimum 'time to live'
of NetBIOS names that <literal>nmbd</literal> will grant will be (in
seconds). You should never need to change this parameter. The default
is 6 hours (21600 seconds).</para>
<para>Default: <emphasis><parameter>min wins ttl</parameter> = <literal>21600</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>msdfs proxy</primary></indexterm><anchor id="MSDFSPROXY"/><title>
msdfs proxy (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter indicates that the share is a
stand-in for another CIFS share whose location is specified by
the value of the parameter. When clients attempt to connect to
this share, they are redirected to the proxied share using
the SMB-Dfs protocol.</para>
<para>Only Dfs roots can act as proxy shares. Take a look at the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MSDFSROOT" xlink:href="smb.conf.5.html#MSDFSROOT">msdfs root</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="HOSTMSDFS" xlink:href="smb.conf.5.html#HOSTMSDFS">host msdfs</link>
options to find out how to set up a Dfs root share.</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>msdfs proxy</parameter> = <literal>\otherserver\someshare</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>msdfs root</primary></indexterm><anchor id="MSDFSROOT"/><title>
msdfs root (S)
</title><variablelist><varlistentry><listitem>
<para>If set to <constant>yes</constant>, Samba treats the
share as a Dfs root and allows clients to browse the
distributed file system tree rooted at the share directory.
Dfs links are specified in the share directory by symbolic
links of the form <filename>msdfs:serverA\\shareA,serverB\\shareB</filename>
and so on. For more information on setting up a Dfs tree on
Samba, refer to the MSDFS chapter in the Samba3-HOWTO book.</para>
<para>Default: <emphasis><parameter>msdfs root</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>name cache timeout</primary></indexterm><anchor id="NAMECACHETIMEOUT"/><title>
name cache timeout (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies the number of seconds it takes before
entries in samba's hostname resolve cache time out. If
the timeout is set to 0. the caching is disabled.
</para>
<para>Default: <emphasis><parameter>name cache timeout</parameter> = <literal>660</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>name cache timeout</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>name resolve order</primary></indexterm><anchor id="NAMERESOLVEORDER"/><title>
name resolve order (G)
</title><variablelist><varlistentry><listitem>
<para>This option is used by the programs in the Samba
suite to determine what naming services to use and in what order
to resolve host names to IP addresses. Its main purpose to is to
control how netbios name resolution is performed. The option takes a space
separated string of name resolution options.</para>
<para>The options are: "lmhosts", "host",
"wins" and "bcast". They cause names to be
resolved as follows:</para>
<itemizedlist>
<listitem>
<para>
<constant>lmhosts</constant> : Lookup an IP address in the Samba lmhosts file. If the line in lmhosts has
no name type attached to the NetBIOS name (see the manpage for lmhosts for details) then
any name type matches for lookup.
</para>
</listitem>
<listitem>
<para>
<constant>host</constant> : Do a standard host name to IP address resolution, using the system
<filename moreinfo="none">/etc/hosts </filename>, NIS, or DNS lookups. This method of name resolution is
operating system depended for instance on IRIX or Solaris this may be controlled by the <filename moreinfo="none">/etc/nsswitch.conf</filename> file. Note that this method is used only if the NetBIOS name
type being queried is the 0x20 (server) name type or 0x1c (domain controllers). The latter case is only
useful for active directory domains and results in a DNS query for the SRV RR entry matching
_ldap._tcp.domain.
</para>
</listitem>
<listitem>
<para><constant>wins</constant> : Query a name with
the IP address listed in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WINSSERVER" xlink:href="smb.conf.5.html#WINSSERVER">WINSSERVER</link> parameter. If no WINS server has
been specified this method will be ignored.</para>
</listitem>
<listitem>
<para><constant>bcast</constant> : Do a broadcast on
each of the known local interfaces listed in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INTERFACES" xlink:href="smb.conf.5.html#INTERFACES">interfaces</link>
parameter. This is the least reliable of the name resolution
methods as it depends on the target host being on a locally
connected subnet.</para>
</listitem>
</itemizedlist>
<para>The example below will cause the local lmhosts file to be examined
first, followed by a broadcast attempt, followed by a normal
system hostname lookup.</para>
<para>When Samba is functioning in ADS security mode (<literal>security = ads</literal>)
it is advised to use following settings for <parameter moreinfo="none">name resolve order</parameter>:</para>
<para><literal>name resolve order = wins bcast</literal></para>
<para>DC lookups will still be done via DNS, but fallbacks to netbios names will
not inundate your DNS servers with needless querys for DOMAIN<0x1c> lookups.</para>
<para>Default: <emphasis><parameter>name resolve order</parameter> = <literal>lmhosts host wins bcast</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>name resolve order</parameter> = <literal>lmhosts bcast host</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>netbios aliases</primary></indexterm><anchor id="NETBIOSALIASES"/><title>
netbios aliases (G)
</title><variablelist><varlistentry><listitem>
<para>This is a list of NetBIOS names that nmbd will
advertise as additional names by which the Samba server is known. This allows one machine
to appear in browse lists under multiple names. If a machine is acting as a browse server
or logon server none of these names will be advertised as either browse server or logon
servers, only the primary name of the machine will be advertised with these capabilities.
</para>
<para>Default: <emphasis><parameter>netbios aliases</parameter> = <literal>
# empty string (no additional names)</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>netbios aliases</parameter> = <literal>TEST TEST1 TEST2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>netbios name</primary></indexterm><anchor id="NETBIOSNAME"/><title>
netbios name (G)
</title><variablelist><varlistentry><listitem>
<para>
This sets the NetBIOS name by which a Samba server is known. By default it is the same as the first component
of the host's DNS name. If a machine is a browse server or logon server this name (or the first component of
the hosts DNS name) will be the name that these services are advertised under.
</para>
<para>
There is a bug in Samba-3 that breaks operation of browsing and access to shares if the netbios name
is set to the literal name <literal>PIPE</literal>. To avoid this problem, do not name your Samba-3
server <literal>PIPE</literal>.
</para>
<para>Default: <emphasis><parameter>netbios name</parameter> = <literal>
# machine DNS name</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>netbios name</parameter> = <literal>MYNAME</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>netbios scope</primary></indexterm><anchor id="NETBIOSSCOPE"/><title>
netbios scope (G)
</title><variablelist><varlistentry><listitem>
<para>This sets the NetBIOS scope that Samba will
operate under. This should not be set unless every machine
on your LAN also sets this value.</para>
<para>Default: <emphasis><parameter>netbios scope</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>nis homedir</primary></indexterm><anchor id="NISHOMEDIR"/><title>
nis homedir (G)
</title><variablelist><varlistentry><listitem>
<para>Get the home share server from a NIS map. For
UNIX systems that use an automounter, the user's home directory
will often be mounted on a workstation on demand from a remote
server. </para>
<para>When the Samba logon server is not the actual home directory
server, but is mounting the home directories via NFS then two
network hops would be required to access the users home directory
if the logon server told the client to use itself as the SMB server
for home directories (one over SMB and one over NFS). This can
be very slow.</para>
<para>This option allows Samba to return the home share as
being on a different server to the logon server and as
long as a Samba daemon is running on the home directory server,
it will be mounted on the Samba client directly from the directory
server. When Samba is returning the home share to the client, it
will consult the NIS map specified in
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="HOMEDIRMAP" xlink:href="smb.conf.5.html#HOMEDIRMAP">homedir map</link> and return the server
listed there.</para>
<para>Note that for this option to work there must be a working
NIS system and the Samba server with this option must also
be a logon server.</para>
<para>Default: <emphasis><parameter>nis homedir</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>nt acl support</primary></indexterm><anchor id="NTACLSUPPORT"/><title>
nt acl support (S)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will attempt to map
UNIX permissions into Windows NT access control lists. The UNIX
permissions considered are the the traditional UNIX owner and
group permissions, as well as POSIX ACLs set on any files or
directories. This parameter was formally a global parameter in
releases prior to 2.2.2.</para>
<para>Default: <emphasis><parameter>nt acl support</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>ntlm auth</primary></indexterm><anchor id="NTLMAUTH"/><title>
ntlm auth (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines whether or not <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will attempt to
authenticate users using the NTLM encrypted password response.
If disabled, either the lanman password hash or an NTLMv2 response
will need to be sent by the client.</para>
<para>If this option, and <literal>lanman
auth</literal> are both disabled, then only NTLMv2 logins will be
permited. Not all clients support NTLMv2, and most will require
special configuration to use it.</para>
<para>Default: <emphasis><parameter>ntlm auth</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>nt pipe support</primary></indexterm><anchor id="NTPIPESUPPORT"/><title>
nt pipe support (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will allow Windows NT
clients to connect to the NT SMB specific <constant>IPC$</constant>
pipes. This is a developer debugging option and can be left
alone.</para>
<para>Default: <emphasis><parameter>nt pipe support</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>nt status support</primary></indexterm><anchor id="NTSTATUSSUPPORT"/><title>
nt status support (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will negotiate NT specific status
support with Windows NT/2k/XP clients. This is a developer debugging option and should be left alone.
If this option is set to <constant>no</constant> then Samba offers
exactly the same DOS error codes that versions prior to Samba 2.2.3
reported.</para>
<para>You should not need to ever disable this parameter.</para>
<para>Default: <emphasis><parameter>nt status support</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>null passwords</primary></indexterm><anchor id="NULLPASSWORDS"/><title>
null passwords (G)
</title><variablelist><varlistentry><listitem>
<para>Allow or disallow client access to accounts that have null passwords. </para>
<para>See also <citerefentry><refentrytitle>smbpasswd</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>.</para>
<para>Default: <emphasis><parameter>null passwords</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>obey pam restrictions</primary></indexterm><anchor id="OBEYPAMRESTRICTIONS"/><title>
obey pam restrictions (G)
</title><variablelist><varlistentry><listitem>
<para>When Samba 3.0 is configured to enable PAM support
(i.e. --with-pam), this parameter will control whether or not Samba
should obey PAM's account and session management directives. The
default behavior is to use PAM for clear text authentication only
and to ignore any account or session management. Note that Samba
always ignores PAM for authentication in the case of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTPASSWORDS">encrypt passwords = yes</link>. The reason
is that PAM modules cannot support the challenge/response
authentication mechanism needed in the presence of SMB password encryption.
</para>
<para>Default: <emphasis><parameter>obey pam restrictions</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>only user</primary></indexterm><anchor id="ONLYUSER"/><title>
only user (S)
</title><variablelist><varlistentry><listitem>
<para>This is a boolean option that controls whether
connections with usernames not in the <parameter moreinfo="none">user</parameter>
list will be allowed. By default this option is disabled so that a
client can supply a username to be used by the server. Enabling
this parameter will force the server to only use the login
names from the <parameter moreinfo="none">user</parameter> list and is only really
useful in <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = share</link> level security.</para>
<para>Note that this also means Samba won't try to deduce
usernames from the service name. This can be annoying for
the [homes] section. To get around this you could use <literal>user =
%S</literal> which means your <parameter moreinfo="none">user</parameter> list
will be just the service name, which for home directories is the
name of the user.</para>
<para>Default: <emphasis><parameter>only user</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>oplock break wait time</primary></indexterm><anchor id="OPLOCKBREAKWAITTIME"/><title>
oplock break wait time (G)
</title><variablelist><varlistentry><listitem>
<para>
This is a tuning parameter added due to bugs in both Windows 9x and WinNT. If Samba responds to a client too
quickly when that client issues an SMB that can cause an oplock break request, then the network client can
fail and not respond to the break request. This tuning parameter (which is set in milliseconds) is the amount
of time Samba will wait before sending an oplock break request to such (broken) clients.
</para>
<warning><para>
DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ AND UNDERSTOOD THE SAMBA OPLOCK CODE.
</para></warning>
<para>Default: <emphasis><parameter>oplock break wait time</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>oplock contention limit</primary></indexterm><anchor id="OPLOCKCONTENTIONLIMIT"/><title>
oplock contention limit (S)
</title><variablelist><varlistentry><listitem>
<para>
This is a <emphasis>very</emphasis> advanced <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> tuning option to improve the efficiency of the
granting of oplocks under multiple client contention for the same file.
</para>
<para>
In brief it specifies a number, which causes <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>not to grant an oplock even when requested if the
approximate number of clients contending for an oplock on the same file goes over this
limit. This causes <literal>smbd</literal> to behave in a similar
way to Windows NT.
</para>
<warning><para>
DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ AND UNDERSTOOD THE SAMBA OPLOCK CODE.
</para></warning>
<para>Default: <emphasis><parameter>oplock contention limit</parameter> = <literal>2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>oplocks</primary></indexterm><anchor id="OPLOCKS"/><title>
oplocks (S)
</title><variablelist><varlistentry><listitem>
<para>
This boolean option tells <literal>smbd</literal> whether to
issue oplocks (opportunistic locks) to file open requests on this
share. The oplock code can dramatically (approx. 30% or more) improve
the speed of access to files on Samba servers. It allows the clients
to aggressively cache files locally and you may want to disable this
option for unreliable network environments (it is turned on by
default in Windows NT Servers). For more information see the file
<filename moreinfo="none">Speed.txt</filename> in the Samba
<filename moreinfo="none">docs/</filename> directory.
</para>
<para>
Oplocks may be selectively turned off on certain files with a share. See
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="VETOOPLOCKFILES" xlink:href="smb.conf.5.html#VETOOPLOCKFILES">veto oplock files</link> parameter. On some systems
oplocks are recognized by the underlying operating system. This
allows data synchronization between all access to oplocked files,
whether it be via Samba or NFS or a local UNIX process. See the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="KERNELOPLOCKS" xlink:href="smb.conf.5.html#KERNELOPLOCKS">kernel oplocks</link> parameter for details.
</para>
<para>Default: <emphasis><parameter>oplocks</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>os2 driver map</primary></indexterm><anchor id="OS2DRIVERMAP"/><title>
os2 driver map (G)
</title><variablelist><varlistentry><listitem>
<para>The parameter is used to define the absolute
path to a file containing a mapping of Windows NT printer driver
names to OS/2 printer driver names. The format is:</para>
<para><nt driver name> = <os2 driver name>.<device name></para>
<para>For example, a valid entry using the HP LaserJet 5
printer driver would appear as <literal>HP LaserJet 5L = LASERJET.HP
LaserJet 5L</literal>.</para>
<para>
The need for the file is due to the printer driver namespace problem described in
the chapter on Classical Printing in the Samba3-HOWTO book. For more
details on OS/2 clients, please refer to chapter on other clients in the Samba3-HOWTO book.
</para>
<para>Default: <emphasis><parameter>os2 driver map</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>os level</primary></indexterm><anchor id="OSLEVEL"/><title>
os level (G)
</title><variablelist><varlistentry><listitem>
<para>
This integer value controls what level Samba advertises itself as for browse elections. The value of this
parameter determines whether <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> has a chance of becoming a local master browser for the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> in the local broadcast area.
</para>
<para><emphasis>
Note:</emphasis> By default, Samba will win a local master browsing election over all Microsoft operating
systems except a Windows NT 4.0/2000 Domain Controller. This means that a misconfigured Samba host can
effectively isolate a subnet for browsing purposes. This parameter is largely auto-configured in the Samba-3
release series and it is seldom necessary to manually override the default setting. Please refer to
the chapter on Network Browsing in the Samba-3 HOWTO document for further information regarding the use
of this parameter.
<emphasis>Note:</emphasis> The maximum value for this parameter is 255. If you use higher values, counting
will start at 0!
</para>
<para>Default: <emphasis><parameter>os level</parameter> = <literal>20</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>os level</parameter> = <literal>65</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>pam password change</primary></indexterm><anchor id="PAMPASSWORDCHANGE"/><title>
pam password change (G)
</title><variablelist><varlistentry><listitem>
<para>With the addition of better PAM support in Samba 2.2,
this parameter, it is possible to use PAM's password change control
flag for Samba. If enabled, then PAM will be used for password
changes when requested by an SMB client instead of the program listed in
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWDPROGRAM" xlink:href="smb.conf.5.html#PASSWDPROGRAM">passwd program</link>.
It should be possible to enable this without changing your
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWDCHAT" xlink:href="smb.conf.5.html#PASSWDCHAT">passwd chat</link> parameter for most setups.</para>
<para>Default: <emphasis><parameter>pam password change</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>panic action</primary></indexterm><anchor id="PANICACTION"/><title>
panic action (G)
</title><variablelist><varlistentry><listitem>
<para>This is a Samba developer option that allows a
system command to be called when either <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> or <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> crashes. This is usually used to
draw attention to the fact that a problem occurred.
</para>
<para>Default: <emphasis><parameter>panic action</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>panic action</parameter> = <literal>"/bin/sleep 90000"</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>paranoid server security</primary></indexterm><anchor id="PARANOIDSERVERSECURITY"/><title>
paranoid server security (G)
</title><variablelist><varlistentry><listitem>
<para>Some version of NT 4.x allow non-guest
users with a bad passowrd. When this option is enabled, samba will not
use a broken NT 4.x server as password server, but instead complain
to the logs and exit.
</para>
<para>Disabling this option prevents Samba from making
this check, which involves deliberatly attempting a
bad logon to the remote server.</para>
<para>Default: <emphasis><parameter>paranoid server security</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passdb backend</primary></indexterm><anchor id="PASSDBBACKEND"/><title>
passdb backend (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows the administrator to chose which backend
will be used for storing user and possibly group information. This allows
you to swap between different storage mechanisms without recompile. </para>
<para>The parameter value is divided into two parts, the backend's name, and a 'location'
string that has meaning only to that particular backed. These are separated
by a : character.</para>
<para>Available backends can include:
<itemizedlist>
<listitem>
<para><literal>smbpasswd</literal> - The default smbpasswd
backend. Takes a path to the smbpasswd file as an optional argument.
</para>
</listitem>
<listitem>
<para><literal>tdbsam</literal> - The TDB based password storage
backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb
in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRIVATEDIR" xlink:href="smb.conf.5.html#PRIVATEDIR">private dir</link> directory.</para>
</listitem>
<listitem>
<para><literal>ldapsam</literal> - The LDAP based passdb
backend. Takes an LDAP URL as an optional argument (defaults to
<literal>ldap://localhost</literal>)</para>
<para>LDAP connections should be secured where possible. This may be done using either
Start-TLS (see <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LDAPSSL" xlink:href="smb.conf.5.html#LDAPSSL">ldap ssl</link>) or by
specifying <parameter moreinfo="none">ldaps://</parameter> in
the URL argument. </para>
<para>Multiple servers may also be specified in double-quotes.
Whether multiple servers are supported or not and the exact
syntax depends on the LDAP library you use.
</para>
</listitem>
</itemizedlist>
</para>
Examples of use are:
<programlisting>
passdb backend = tdbsam:/etc/samba/private/passdb.tdb
or multi server LDAP URL with OpenLDAP library:
passdb backend = ldapsam:"ldap://ldap-1.example.com ldap://ldap-2.example.com"
or multi server LDAP URL with Netscape based LDAP library:
passdb backend = ldapsam:"ldap://ldap-1.example.com ldap-2.example.com"
</programlisting>
<para>Default: <emphasis><parameter>passdb backend</parameter> = <literal>smbpasswd</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passdb expand explicit</primary></indexterm><anchor id="PASSDBEXPANDEXPLICIT"/><title>
passdb expand explicit (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls whether Samba substitutes %-macros in the passdb fields if they are explicitly set. We
used to expand macros here, but this turned out to be a bug because the Windows client can expand a variable
%G_osver% in which %G would have been substituted by the user's primary group.
</para>
<para>Default: <emphasis><parameter>passdb expand explicit</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passwd chat debug</primary></indexterm><anchor id="PASSWDCHATDEBUG"/><title>
passwd chat debug (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean specifies if the passwd chat script
parameter is run in <emphasis>debug</emphasis> mode. In this mode the
strings passed to and received from the passwd chat are printed
in the <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> log with a
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEBUGLEVEL" xlink:href="smb.conf.5.html#DEBUGLEVEL">debug level</link>
of 100. This is a dangerous option as it will allow plaintext passwords
to be seen in the <literal>smbd</literal> log. It is available to help
Samba admins debug their <parameter moreinfo="none">passwd chat</parameter> scripts
when calling the <parameter moreinfo="none">passwd program</parameter> and should
be turned off after this has been done. This option has no effect if the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PAMPASSWORDCHANGE" xlink:href="smb.conf.5.html#PAMPASSWORDCHANGE">pam password change</link>
parameter is set. This parameter is off by default.</para>
<para>Default: <emphasis><parameter>passwd chat debug</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passwd chat timeout</primary></indexterm><anchor id="PASSWDCHATTIMEOUT"/><title>
passwd chat timeout (G)
</title><variablelist><varlistentry><listitem>
<para>This integer specifies the number of seconds smbd will wait for an initial
answer from a passwd chat script being run. Once the initial answer is received
the subsequent answers must be received in one tenth of this time. The default it
two seconds.</para>
<para>Default: <emphasis><parameter>passwd chat timeout</parameter> = <literal>2</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passwd chat</primary></indexterm><anchor id="PASSWDCHAT"/><title>
passwd chat (G)
</title><variablelist><varlistentry><listitem>
<para>This string controls the <emphasis>"chat"</emphasis>
conversation that takes places between <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> and the local password changing
program to change the user's password. The string describes a
sequence of response-receive pairs that <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> uses to determine what to send to the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWDPROGRAM" xlink:href="smb.conf.5.html#PASSWDPROGRAM">passwd program</link> and what to expect back. If the expected output is not
received then the password is not changed.</para>
<para>This chat sequence is often quite site specific, depending
on what local methods are used for password control (such as NIS
etc).</para>
<para>Note that this parameter only is used if the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="UNIXPASSWORDSYNC" xlink:href="smb.conf.5.html#UNIXPASSWORDSYNC">unix password sync</link> parameter is set to <constant>yes</constant>. This sequence is
then called <emphasis>AS ROOT</emphasis> when the SMB password in the
smbpasswd file is being changed, without access to the old password
cleartext. This means that root must be able to reset the user's password without
knowing the text of the previous password. In the presence of
NIS/YP, this means that the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWDPROGRAM" xlink:href="smb.conf.5.html#PASSWDPROGRAM">passwd program</link> must
be executed on the NIS master.
</para>
<para>The string can contain the macro <parameter moreinfo="none">%n</parameter> which is substituted
for the new password. The old passsword (<parameter moreinfo="none">%o</parameter>) is only available when
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTPASSWORDS">encrypt passwords</link> has been disabled.
The chat sequence can also contain the standard macros
\n, \r, \t and \s to give line-feed, carriage-return, tab
and space. The chat sequence string can also contain
a '*' which matches any sequence of characters. Double quotes can
be used to collect strings with spaces in them into a single
string.</para>
<para>If the send string in any part of the chat sequence is a full
stop ".", then no string is sent. Similarly, if the
expect string is a full stop then no string is expected.</para>
<para>If the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PAMPASSWORDCHANGE" xlink:href="smb.conf.5.html#PAMPASSWORDCHANGE">pam password change</link> parameter is set to <constant>yes</constant>, the
chat pairs may be matched in any order, and success is determined by the PAM result, not any particular
output. The \n macro is ignored for PAM conversions.
</para>
<para>Default: <emphasis><parameter>passwd chat</parameter> = <literal>*new*password* %n\n*new*password* %n\n *changed*</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>passwd chat</parameter> = <literal>"*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>passwd program</primary></indexterm><anchor id="PASSWDPROGRAM"/><title>
passwd program (G)
</title><variablelist><varlistentry><listitem>
<para>The name of a program that can be used to set
UNIX user passwords. Any occurrences of <parameter moreinfo="none">%u</parameter>
will be replaced with the user name. The user name is checked for
existence before calling the password changing program.</para>
<para>Also note that many passwd programs insist in <emphasis>reasonable
</emphasis> passwords, such as a minimum length, or the inclusion
of mixed case chars and digits. This can pose a problem as some clients
(such as Windows for Workgroups) uppercase the password before sending
it.</para>
<para><emphasis>Note</emphasis> that if the <parameter moreinfo="none">unix
password sync</parameter> parameter is set to <constant>yes
</constant> then this program is called <emphasis>AS ROOT</emphasis>
before the SMB password in the smbpasswd
file is changed. If this UNIX password change fails, then
<literal>smbd</literal> will fail to change the SMB password also
(this is by design).</para>
<para>If the <parameter moreinfo="none">unix password sync</parameter> parameter
is set this parameter <emphasis>MUST USE ABSOLUTE PATHS</emphasis>
for <emphasis>ALL</emphasis> programs called, and must be examined
for security implications. Note that by default <parameter moreinfo="none">unix
password sync</parameter> is set to <constant>no</constant>.</para>
<para>Default: <emphasis><parameter>passwd program</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>passwd program</parameter> = <literal>/bin/passwd %u</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>password level</primary></indexterm><anchor id="PASSWORDLEVEL"/><title>
password level (G)
</title><variablelist><varlistentry><listitem>
<para>Some client/server combinations have difficulty
with mixed-case passwords. One offending client is Windows for
Workgroups, which for some reason forces passwords to upper
case when using the LANMAN1 protocol, but leaves them alone when
using COREPLUS! Another problem child is the Windows 95/98
family of operating systems. These clients upper case clear
text passwords even when NT LM 0.12 selected by the protocol
negotiation request/response.</para>
<para>This parameter defines the maximum number of characters
that may be upper case in passwords.</para>
<para>For example, say the password given was "FRED". If <parameter moreinfo="none">
password level</parameter> is set to 1, the following combinations
would be tried if "FRED" failed:</para>
<para>"Fred", "fred", "fRed", "frEd","freD"</para>
<para>If <parameter moreinfo="none">password level</parameter> was set to 2,
the following combinations would also be tried: </para>
<para>"FRed", "FrEd", "FreD", "fREd", "fReD", "frED", ..</para>
<para>And so on.</para>
<para>The higher value this parameter is set to the more likely
it is that a mixed case password will be matched against a single
case password. However, you should be aware that use of this
parameter reduces security and increases the time taken to
process a new connection.</para>
<para>A value of zero will cause only two attempts to be
made - the password as is and the password in all-lower case.</para>
<para>This parameter is used only when using plain-text passwords. It is
not at all used when encrypted passwords as in use (that is the default
since samba-3.0.0). Use this only when <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTPASSWORDS">encrypt passwords = No</link>.</para>
<para>Default: <emphasis><parameter>password level</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>password level</parameter> = <literal>4</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>password server</primary></indexterm><anchor id="PASSWORDSERVER"/><title>
password server (G)
</title><variablelist><varlistentry><listitem>
<para>By specifying the name of another SMB server
or Active Directory domain controller with this option,
and using <literal>security = [ads|domain|server]</literal>
it is possible to get Samba to
to do all its username/password validation using a specific remote server.</para>
<para>This option sets the name or IP address of the password server to use.
New syntax has been added to support defining the port to use when connecting
to the server the case of an ADS realm. To define a port other than the
default LDAP port of 389, add the port number using a colon after the
name or IP address (e.g. 192.168.1.100:389). If you do not specify a port,
Samba will use the standard LDAP port of tcp/389. Note that port numbers
have no effect on password servers for Windows NT 4.0 domains or netbios
connections.</para>
<para>If parameter is a name, it is looked up using the
parameter <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NAMERESOLVEORDER" xlink:href="smb.conf.5.html#NAMERESOLVEORDER">name resolve order</link> and so may resolved
by any method and order described in that parameter.</para>
<para>The password server must be a machine capable of using
the "LM1.2X002" or the "NT LM 0.12" protocol, and it must be in
user level security mode.</para>
<note><para>Using a password server means your UNIX box (running
Samba) is only as secure as your password server. <emphasis>DO NOT
CHOOSE A PASSWORD SERVER THAT YOU DON'T COMPLETELY TRUST</emphasis>.
</para></note>
<para>Never point a Samba server at itself for password serving.
This will cause a loop and could lock up your Samba server!</para>
<para>The name of the password server takes the standard
substitutions, but probably the only useful one is <parameter moreinfo="none">%m
</parameter>, which means the Samba server will use the incoming
client as the password server. If you use this then you better
trust your clients, and you had better restrict them with hosts allow!</para>
<para>If the <parameter moreinfo="none">security</parameter> parameter is set to
<constant>domain</constant> or <constant>ads</constant>, then the list of machines in this
option must be a list of Primary or Backup Domain controllers for the
Domain or the character '*', as the Samba server is effectively
in that domain, and will use cryptographically authenticated RPC calls
to authenticate the user logging on. The advantage of using <literal>
security = domain</literal> is that if you list several hosts in the
<parameter moreinfo="none">password server</parameter> option then <literal>smbd
</literal> will try each in turn till it finds one that responds. This
is useful in case your primary server goes down.</para>
<para>If the <parameter moreinfo="none">password server</parameter> option is set
to the character '*', then Samba will attempt to auto-locate the
Primary or Backup Domain controllers to authenticate against by
doing a query for the name <constant>WORKGROUP<1C></constant>
and then contacting each server returned in the list of IP
addresses from the name resolution source. </para>
<para>If the list of servers contains both names/IP's and the '*'
character, the list is treated as a list of preferred
domain controllers, but an auto lookup of all remaining DC's
will be added to the list as well. Samba will not attempt to optimize
this list by locating the closest DC.</para>
<para>If the <parameter moreinfo="none">security</parameter> parameter is
set to <constant>server</constant>, then there are different
restrictions that <literal>security = domain</literal> doesn't
suffer from:</para>
<itemizedlist>
<listitem>
<para>You may list several password servers in
the <parameter moreinfo="none">password server</parameter> parameter, however if an
<literal>smbd</literal> makes a connection to a password server,
and then the password server fails, no more users will be able
to be authenticated from this <literal>smbd</literal>. This is a
restriction of the SMB/CIFS protocol when in <literal>security = server
</literal> mode and cannot be fixed in Samba.</para>
</listitem>
<listitem>
<para>If you are using a Windows NT server as your
password server then you will have to ensure that your users
are able to login from the Samba server, as when in <literal>
security = server</literal> mode the network logon will appear to
come from there rather than from the users workstation.</para>
</listitem>
</itemizedlist>
<para>Default: <emphasis><parameter>password server</parameter> = <literal>*</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>password server</parameter> = <literal>NT-PDC, NT-BDC1, NT-BDC2, *</literal>
</emphasis>
</para><para>Example: <emphasis><parameter>password server</parameter> = <literal>windc.mydomain.com:389 192.168.1.101 *</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>directory</primary><see>path</see></indexterm><title>
<anchor id="DIRECTORY"/>directory
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PATH">path</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>path</primary></indexterm><anchor id="PATH"/><title>
path (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies a directory to which
the user of the service is to be given access. In the case of
printable services, this is where print data will spool prior to
being submitted to the host for printing.</para>
<para>For a printable service offering guest access, the service
should be readonly and the path should be world-writeable and
have the sticky bit set. This is not mandatory of course, but
you probably won't get the results you expect if you do
otherwise.</para>
<para>Any occurrences of <parameter moreinfo="none">%u</parameter> in the path
will be replaced with the UNIX username that the client is using
on this connection. Any occurrences of <parameter moreinfo="none">%m</parameter>
will be replaced by the NetBIOS name of the machine they are
connecting from. These replacements are very useful for setting
up pseudo home directories for users.</para>
<para>Note that this path will be based on <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ROOTDIR" xlink:href="smb.conf.5.html#ROOTDIR">root dir</link>
if one was specified.</para>
<para>Default: <emphasis><parameter>path</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>path</parameter> = <literal>/home/fred</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>pid directory</primary></indexterm><anchor id="PIDDIRECTORY"/><title>
pid directory (G)
</title><variablelist><varlistentry><listitem>
<para>
This option specifies the directory where pid files will be placed.
</para>
<para>Default: <emphasis><parameter>pid directory</parameter> = <literal>${prefix}/var/locks</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>pid directory</parameter> = <literal>pid directory = /var/run/</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>posix locking</primary></indexterm><anchor id="POSIXLOCKING"/><title>
posix locking (S)
</title><variablelist><varlistentry><listitem>
<para>
The <citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry>
daemon maintains an database of file locks obtained by SMB clients. The default behavior is
to map this internal database to POSIX locks. This means that file locks obtained by SMB clients are
consistent with those seen by POSIX compliant applications accessing the files via a non-SMB
method (e.g. NFS or local file access). You should never need to disable this parameter.
</para>
<para>Default: <emphasis><parameter>posix locking</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>postexec</primary></indexterm><anchor id="POSTEXEC"/><title>
postexec (S)
</title><variablelist><varlistentry><listitem>
<para>This option specifies a command to be run
whenever the service is disconnected. It takes the usual
substitutions. The command may be run as the root on some
systems.</para>
<para>An interesting example may be to unmount server
resources:</para>
<para><literal>postexec = /etc/umount /cdrom</literal></para>
<para>Default: <emphasis><parameter>postexec</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>postexec</parameter> = <literal>echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>preexec close</primary></indexterm><anchor id="PREEXECCLOSE"/><title>
preexec close (S)
</title><variablelist><varlistentry><listitem>
<para>
This boolean option controls whether a non-zero return code from <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PREEXEC" xlink:href="smb.conf.5.html#PREEXEC">preexec</link>
should close the service being connected to.
</para>
<para>Default: <emphasis><parameter>preexec close</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>exec</primary><see>preexec</see></indexterm><title>
<anchor id="EXEC"/>exec
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PREEXEC">preexec</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>preexec</primary></indexterm><anchor id="PREEXEC"/><title>
preexec (S)
</title><variablelist><varlistentry><listitem>
<para>This option specifies a command to be run whenever
the service is connected to. It takes the usual substitutions.</para>
<para>An interesting example is to send the users a welcome
message every time they log in. Maybe a message of the day? Here
is an example:</para>
<para>
<literal>preexec = csh -c 'echo \"Welcome to %S!\" |
/usr/local/samba/bin/smbclient -M %m -I %I' & </literal>
</para>
<para>Of course, this could get annoying after a while :-)</para>
<para>
See also <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PREEXECCLOSE" xlink:href="smb.conf.5.html#PREEXECCLOSE">preexec close</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="POSTEXEC" xlink:href="smb.conf.5.html#POSTEXEC">postexec</link>.
</para>
<para>Default: <emphasis><parameter>preexec</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>preexec</parameter> = <literal>echo \"%u connected to %S from %m (%I)\" >> /tmp/log</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>prefered master</primary><see>preferred master</see></indexterm><title>
<anchor id="PREFEREDMASTER"/>prefered master
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PREFERREDMASTER">preferred master</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>preferred master</primary></indexterm><anchor id="PREFERREDMASTER"/><title>
preferred master (G)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter controls if <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> is a preferred master browser for its workgroup.
</para>
<para>
If this is set to <constant>yes</constant>, on startup, <literal>nmbd</literal> will force
an election, and it will have a slight advantage in winning the election. It is recommended that this
parameter is used in conjunction with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DOMAINMASTER" xlink:href="smb.conf.5.html#DOMAINMASTER">domain master = yes</link>, so that
<literal>nmbd</literal> can guarantee becoming a domain master.
</para>
<para>
Use this option with caution, because if there are several hosts (whether Samba servers, Windows 95 or NT)
that are preferred master browsers on the same subnet, they will each periodically and continuously attempt
to become the local master browser. This will result in unnecessary broadcast traffic and reduced browsing
capabilities.
</para>
<para>Default: <emphasis><parameter>preferred master</parameter> = <literal>auto</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>preload modules</primary></indexterm><anchor id="PRELOADMODULES"/><title>
preload modules (G)
</title><variablelist><varlistentry><listitem>
<para>This is a list of paths to modules that should
be loaded into smbd before a client connects. This improves
the speed of smbd when reacting to new connections somewhat. </para>
<para>Default: <emphasis><parameter>preload modules</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>preload modules</parameter> = <literal>/usr/lib/samba/passdb/mysql.so</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>auto services</primary><see>preload</see></indexterm><title>
<anchor id="AUTOSERVICES"/>auto services
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PRELOAD">preload</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>preload</primary></indexterm><anchor id="PRELOAD"/><title>
preload (G)
</title><variablelist><varlistentry><listitem>
<para>This is a list of services that you want to be
automatically added to the browse lists. This is most useful
for homes and printers services that would otherwise not be
visible.</para>
<para>
Note that if you just want all printers in your
printcap file loaded then the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LOADPRINTERS" xlink:href="smb.conf.5.html#LOADPRINTERS">load printers</link>
option is easier.
</para>
<para>Default: <emphasis><parameter>preload</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>preload</parameter> = <literal>fred lp colorlp</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>preserve case</primary></indexterm><anchor id="PRESERVECASE"/><title>
preserve case (S)
</title><variablelist><varlistentry><listitem>
<para>
This controls if new filenames are created with the case that the client passes, or if
they are forced to be the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEFAULTCASE" xlink:href="smb.conf.5.html#DEFAULTCASE">default case</link>.
</para>
<para>
See the section on <link linkend="NAMEMANGLINGSECT">NAME MANGLING</link> for a fuller discussion.
</para>
<para>Default: <emphasis><parameter>preserve case</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>print ok</primary><see>printable</see></indexterm><title>
<anchor id="PRINTOK"/>print ok
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PRINTABLE">printable</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>printable</primary></indexterm><anchor id="PRINTABLE"/><title>
printable (S)
</title><variablelist><varlistentry><listitem>
<para>If this parameter is <constant>yes</constant>, then
clients may open, write to and submit spool files on the directory
specified for the service. </para>
<para>Note that a printable service will ALWAYS allow writing
to the service path (user privileges permitting) via the spooling
of print data. The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only</link> parameter controls only non-printing access to
the resource.</para>
<para>Default: <emphasis><parameter>printable</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printcap cache time</primary></indexterm><anchor id="PRINTCAPCACHETIME"/><title>
printcap cache time (G)
</title><variablelist><varlistentry><listitem>
<para>This option specifies the number of seconds before the printing
subsystem is again asked for the known printers. If the value
is greater than 60 the initial waiting time is set to 60 seconds
to allow an earlier first rescan of the printing subsystem.
</para>
<para>Setting this parameter to 0 disables any rescanning for new
or removed printers after the initial startup.
</para>
<para>Default: <emphasis><parameter>printcap cache time</parameter> = <literal>750</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>printcap cache time</parameter> = <literal>600</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printcap</primary><see>printcap name</see></indexterm><title>
<anchor id="PRINTCAP"/>printcap
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PRINTCAPNAME">printcap name</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>printcap name</primary></indexterm><anchor id="PRINTCAPNAME"/><title>
printcap name (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter may be used to override the compiled-in default printcap name used by the server (usually
<filename moreinfo="none"> /etc/printcap</filename>). See the discussion of the <link linkend="PRINTERSSECT">[printers]</link> section above for reasons why you might want to do this.
</para>
<para>
To use the CUPS printing interface set <literal>printcap name = cups </literal>. This should
be supplemented by an addtional setting <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing = cups</link> in the [global]
section. <literal>printcap name = cups</literal> will use the "dummy" printcap
created by CUPS, as specified in your CUPS configuration file.
</para>
<para>
On System V systems that use <literal>lpstat</literal> to
list available printers you can use <literal>printcap name = lpstat
</literal> to automatically obtain lists of available printers. This
is the default for systems that define SYSV at configure time in
Samba (this includes most System V based systems). If <parameter moreinfo="none">
printcap name</parameter> is set to <literal>lpstat</literal> on
these systems then Samba will launch <literal>lpstat -v</literal> and
attempt to parse the output to obtain a printer list.
</para>
<para>
A minimal printcap file would look something like this:
<programlisting format="linespecific">
print1|My Printer 1
print2|My Printer 2
print3|My Printer 3
print4|My Printer 4
print5|My Printer 5
</programlisting>
where the '|' separates aliases of a printer. The fact that the second alias has a space in
it gives a hint to Samba that it's a comment.
</para>
<note><para>
Under AIX the default printcap name is <filename moreinfo="none">/etc/qconfig</filename>. Samba will
assume the file is in AIX <filename moreinfo="none">qconfig</filename> format if the string <filename moreinfo="none">qconfig</filename> appears in the printcap filename.
</para></note>
<para>Default: <emphasis><parameter>printcap name</parameter> = <literal>/etc/printcap</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>printcap name</parameter> = <literal>/etc/myprintcap</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>print command</primary></indexterm><anchor id="PRINTCOMMAND"/><title>
print command (S)
</title><variablelist><varlistentry><listitem>
<para>After a print job has finished spooling to
a service, this command will be used via a <literal>system()</literal>
call to process the spool file. Typically the command specified will
submit the spool file to the host's printing subsystem, but there
is no requirement that this be the case. The server will not remove
the spool file, so whatever command you specify should remove the
spool file when it has been processed, otherwise you will need to
manually remove old spool files.</para>
<para>The print command is simply a text string. It will be used
verbatim after macro substitutions have been made:</para>
<para>%s, %f - the path to the spool
file name</para>
<para>%p - the appropriate printer
name</para>
<para>%J - the job
name as transmitted by the client.</para>
<para>%c - The number of printed pages
of the spooled job (if known).</para>
<para>%z - the size of the spooled
print job (in bytes)</para>
<para>The print command <emphasis>MUST</emphasis> contain at least
one occurrence of <parameter moreinfo="none">%s</parameter> or <parameter moreinfo="none">%f
</parameter> - the <parameter moreinfo="none">%p</parameter> is optional. At the time
a job is submitted, if no printer name is supplied the <parameter moreinfo="none">%p
</parameter> will be silently removed from the printer command.</para>
<para>If specified in the [global] section, the print command given
will be used for any printable service that does not have its own
print command specified.</para>
<para>If there is neither a specified print command for a
printable service nor a global print command, spool files will
be created but not processed and (most importantly) not removed.</para>
<para>Note that printing may fail on some UNIXes from the
<constant>nobody</constant> account. If this happens then create
an alternative guest account that can print and set the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>
in the [global] section.</para>
<para>You can form quite complex print commands by realizing
that they are just passed to a shell. For example the following
will log a print job, print the file, then remove it. Note that
';' is the usual separator for command in shell scripts.</para>
<para><literal>print command = echo Printing %s >>
/tmp/print.log; lpr -P %p %s; rm %s</literal></para>
<para>You may have to vary this command considerably depending
on how you normally print files on your system. The default for
the parameter varies depending on the setting of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTING" xlink:href="smb.conf.5.html#PRINTING">printing</link>
parameter.</para>
<para>Default: For <literal>printing = BSD, AIX, QNX, LPRNG
or PLP :</literal></para>
<para><literal>print command = lpr -r -P%p %s</literal></para>
<para>For <literal>printing = SYSV or HPUX :</literal></para>
<para><literal>print command = lp -c -d%p %s; rm %s</literal></para>
<para>For <literal>printing = SOFTQ :</literal></para>
<para><literal>print command = lp -d%p -s %s; rm %s</literal></para>
<para>For printing = CUPS : If SAMBA is compiled against
libcups, then <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTCAP" xlink:href="smb.conf.5.html#PRINTCAP">printcap = cups</link>
uses the CUPS API to
submit jobs, etc. Otherwise it maps to the System V
commands with the -oraw option for printing, i.e. it
uses <literal>lp -c -d%p -oraw; rm %s</literal>.
With <literal>printing = cups</literal>,
and if SAMBA is compiled against libcups, any manually
set print command will be ignored.</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>print command</parameter> = <literal>/usr/local/samba/bin/myprintscript %p %s</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printer admin</primary></indexterm><anchor id="PRINTERADMIN"/><title>
printer admin (S)
</title><variablelist><varlistentry><listitem>
<para>
This lists users who can do anything to printers
via the remote administration interfaces offered
by MS-RPC (usually using a NT workstation).
This parameter can be set per-share or globally.
Note: The root user always has admin rights. Use
caution with use in the global stanza as this can
cause side effects.
</para>
<para>
This parameter has been marked deprecated in favor
of using the SePrintOperatorPrivilege and individual
print security descriptors. It will be removed in a future release.
</para>
<para>Default: <emphasis><parameter>printer admin</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>printer admin</parameter> = <literal>admin, @staff</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printer</primary><see>printer name</see></indexterm><title>
<anchor id="PRINTER"/>printer
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="PRINTERNAME">printer name</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>printer name</primary></indexterm><anchor id="PRINTERNAME"/><title>
printer name (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter specifies the name of the printer to which print jobs spooled through a printable service
will be sent.
</para>
<para>
If specified in the [global] section, the printer name given will be used for any printable service that
does not have its own printer name specified.
</para>
<para>
The default value of the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRINTERNAME" xlink:href="smb.conf.5.html#PRINTERNAME">printer name</link> may be <literal>lp</literal> on many
systems.
</para>
<para>Default: <emphasis><parameter>printer name</parameter> = <literal>none</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>printer name</parameter> = <literal>laserwriter</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printing</primary></indexterm><anchor id="PRINTING"/><title>
printing (S)
</title><variablelist><varlistentry><listitem>
<para>This parameters controls how printer status information is
interpreted on your system. It also affects the default values for
the <parameter moreinfo="none">print command</parameter>, <parameter moreinfo="none">lpq command</parameter>, <parameter moreinfo="none">lppause command </parameter>, <parameter moreinfo="none">lpresume command</parameter>, and <parameter moreinfo="none">lprm command</parameter> if specified in the
[global] section.</para>
<para>Currently nine printing styles are supported. They are
<constant>BSD</constant>, <constant>AIX</constant>,
<constant>LPRNG</constant>, <constant>PLP</constant>,
<constant>SYSV</constant>, <constant>HPUX</constant>,
<constant>QNX</constant>, <constant>SOFTQ</constant>,
and <constant>CUPS</constant>.</para>
<para>To see what the defaults are for the other print
commands when using the various options use the <citerefentry><refentrytitle>testparm</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> program.</para>
<para>This option can be set on a per printer basis. Please be
aware however, that you must place any of the various printing
commands (e.g. print command, lpq command, etc...) after defining
the value for the <parameter>printing</parameter> option since it will
reset the printing commands to default values.</para>
<para>See also the discussion in the <link linkend="PRINTERSSECT">
[printers]</link> section.</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>printjob username</primary></indexterm><anchor id="PRINTJOBUSERNAME"/><title>
printjob username (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies which user information will be
passed to the printing system. Usually, the username is sent,
but in some cases, e.g. the domain prefix is useful, too.</para>
<para>Default: <emphasis><parameter>printjob username</parameter> = <literal>%U</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>printjob username</parameter> = <literal>%D\%U</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>private dir</primary></indexterm><anchor id="PRIVATEDIR"/><title>
private dir (G)
</title><variablelist><varlistentry><listitem>
<para>This parameters defines the directory
smbd will use for storing such files as <filename moreinfo="none">smbpasswd</filename>
and <filename moreinfo="none">secrets.tdb</filename>.
</para>
<para>Default: <emphasis><parameter>private dir</parameter> = <literal>${prefix}/private</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>profile acls</primary></indexterm><anchor id="PROFILEACLS"/><title>
profile acls (S)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter was added to fix the problems that people have been
having with storing user profiles on Samba shares from Windows 2000 or
Windows XP clients. New versions of Windows 2000 or Windows XP service
packs do security ACL checking on the owner and ability to write of the
profile directory stored on a local workstation when copied from a Samba
share.
</para>
<para>
When not in domain mode with winbindd then the security info copied
onto the local workstation has no meaning to the logged in user (SID) on
that workstation so the profile storing fails. Adding this parameter
onto a share used for profile storage changes two things about the
returned Windows ACL. Firstly it changes the owner and group owner
of all reported files and directories to be BUILTIN\\Administrators,
BUILTIN\\Users respectively (SIDs S-1-5-32-544, S-1-5-32-545). Secondly
it adds an ACE entry of "Full Control" to the SID BUILTIN\\Users to
every returned ACL. This will allow any Windows 2000 or XP workstation
user to access the profile.
</para>
<para>
Note that if you have multiple users logging
on to a workstation then in order to prevent them from being able to access
each others profiles you must remove the "Bypass traverse checking" advanced
user right. This will prevent access to other users profile directories as
the top level profile directory (named after the user) is created by the
workstation profile code and has an ACL restricting entry to the directory
tree to the owning user.
</para>
<para>Default: <emphasis><parameter>profile acls</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>queuepause command</primary></indexterm><anchor id="QUEUEPAUSECOMMAND"/><title>
queuepause command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to pause the printer queue.</para>
<para>This command should be a program or script which takes
a printer name as its only parameter and stops the printer queue,
such that no longer jobs are submitted to the printer.</para>
<para>This command is not supported by Windows for Workgroups,
but can be issued from the Printers window under Windows 95
and NT.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. Otherwise it is placed at the end of the command.
</para>
<para>Note that it is good practice to include the absolute
path in the command as the PATH may not be available to the
server.</para>
<para><emphasis>No default</emphasis></para>
<para>Example: <emphasis><parameter>queuepause command</parameter> = <literal>disable %p</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>queueresume command</primary></indexterm><anchor id="QUEUERESUMECOMMAND"/><title>
queueresume command (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the command to be
executed on the server host in order to resume the printer queue. It
is the command to undo the behavior that is caused by the
previous parameter (<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="QUEUEPAUSECOMMAND" xlink:href="smb.conf.5.html#QUEUEPAUSECOMMAND">queuepause command</link>).</para>
<para>This command should be a program or script which takes
a printer name as its only parameter and resumes the printer queue,
such that queued jobs are resubmitted to the printer.</para>
<para>This command is not supported by Windows for Workgroups,
but can be issued from the Printers window under Windows 95
and NT.</para>
<para>If a <parameter moreinfo="none">%p</parameter> is given then the printer name
is put in its place. Otherwise it is placed at the end of the
command.</para>
<para>Note that it is good practice to include the absolute
path in the command as the PATH may not be available to the
server.</para>
<para>Default: <emphasis><parameter>queueresume command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>queueresume command</parameter> = <literal>enable %p</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>read list</primary></indexterm><anchor id="READLIST"/><title>
read list (S)
</title><variablelist><varlistentry><listitem>
<para>
This is a list of users that are given read-only access to a service. If the connecting user is in this list
then they will not be given write access, no matter what the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only</link> option is set
to. The list can include group names using the syntax described in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="INVALIDUSERS" xlink:href="smb.conf.5.html#INVALIDUSERS">invalid users</link>
parameter.
</para>
<para>This parameter will not work with the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = share</link> in
Samba 3.0. This is by design.</para>
<para>Default: <emphasis><parameter>read list</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>read list</parameter> = <literal>mary, @students</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>read only</primary></indexterm><anchor id="READONLY"/><title>
read only (S)
</title><variablelist><varlistentry><listitem>
<para>An inverted synonym is <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WRITEABLE" xlink:href="smb.conf.5.html#WRITEABLE">writeable</link>.</para>
<para>If this parameter is <constant>yes</constant>, then users
of a service may not create or modify files in the service's
directory.</para>
<para>Note that a printable service (<literal>printable = yes</literal>)
will <emphasis>ALWAYS</emphasis> allow writing to the directory
(user privileges permitting), but only via spooling operations.</para>
<para>Default: <emphasis><parameter>read only</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>read raw</primary></indexterm><anchor id="READRAW"/><title>
read raw (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether or not the server
will support the raw read SMB requests when transferring data
to clients.</para>
<para>If enabled, raw reads allow reads of 65535 bytes in
one packet. This typically provides a major performance benefit.
</para>
<para>However, some clients either negotiate the allowable
block size incorrectly or are incapable of supporting larger block
sizes, and for these clients you may need to disable raw reads.</para>
<para>In general this parameter should be viewed as a system tuning
tool and left severely alone.</para>
<para>Default: <emphasis><parameter>read raw</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>realm</primary></indexterm><anchor id="REALM"/><title>
realm (G)
</title><variablelist><varlistentry><listitem>
<para>This option specifies the kerberos realm to use. The realm is
used as the ADS equivalent of the NT4 <literal>domain</literal>. It
is usually set to the DNS name of the kerberos server.
</para>
<para>Default: <emphasis><parameter>realm</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>realm</parameter> = <literal>mysambabox.mycompany.com</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>registry shares</primary></indexterm><anchor id="REGISTRYSHARES"/><title>
registry shares (G)
</title><variablelist><varlistentry><listitem>
<para>
This turns on or off support for share definitions read from
registry. Shares defined in <emphasis>smb.conf</emphasis> take
precedence over shares with the same name defined in
registry. See the section on registry-based configuration
for details.
</para>
<para>
Note that this parameter defaults to <emphasis>no</emphasis>,
but it is set to <emphasis>yes</emphasis> when
<parameter>config backend</parameter> is set
to <emphasis>registry</emphasis>.
</para>
<para>Default: <emphasis><parameter>registry shares</parameter> = <literal>no</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>registry shares</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>remote announce</primary></indexterm><anchor id="REMOTEANNOUNCE"/><title>
remote announce (G)
</title><variablelist><varlistentry><listitem>
<para>
This option allows you to setup <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>to periodically announce itself
to arbitrary IP addresses with an arbitrary workgroup name.
</para>
<para>
This is useful if you want your Samba server to appear in a remote workgroup for
which the normal browse propagation rules don't work. The remote workgroup can be
anywhere that you can send IP packets to.
</para>
<para>
For example:
<programlisting>
<literal>remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF</literal>
</programlisting>
the above line would cause <literal>nmbd</literal> to announce itself
to the two given IP addresses using the given workgroup names. If you leave out the
workgroup name then the one given in the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WORKGROUP" xlink:href="smb.conf.5.html#WORKGROUP">workgroup</link> parameter
is used instead.
</para>
<para>
The IP addresses you choose would normally be the broadcast addresses of the remote
networks, but can also be the IP addresses of known browse masters if your network
config is that stable.
</para>
<para>
See the chapter on Network Browsing in the Samba-HOWTO book.
</para>
<para>Default: <emphasis><parameter>remote announce</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>remote browse sync</primary></indexterm><anchor id="REMOTEBROWSESYNC"/><title>
remote browse sync (G)
</title><variablelist><varlistentry><listitem>
<para>
This option allows you to setup <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> to periodically request
synchronization of browse lists with the master browser of a Samba
server that is on a remote segment. This option will allow you to
gain browse lists for multiple workgroups across routed networks. This
is done in a manner that does not work with any non-Samba servers.
</para>
<para>
This is useful if you want your Samba server and all local
clients to appear in a remote workgroup for which the normal browse
propagation rules don't work. The remote workgroup can be anywhere
that you can send IP packets to.
</para>
<para>
For example:
<programlisting>
<parameter>remote browse sync = 192.168.2.255 192.168.4.255</parameter>
</programlisting>
the above line would cause <literal>nmbd</literal> to request the master browser on the
specified subnets or addresses to synchronize their browse lists with
the local server.
</para>
<para>
The IP addresses you choose would normally be the broadcast
addresses of the remote networks, but can also be the IP addresses
of known browse masters if your network config is that stable. If
a machine IP address is given Samba makes NO attempt to validate
that the remote machine is available, is listening, nor that it
is in fact the browse master on its segment.
</para>
<para>
The <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="REMOTEBROWSESYNC" xlink:href="smb.conf.5.html#REMOTEBROWSESYNC">remote browse sync</link> may be used on networks
where there is no WINS server, and may be used on disjoint networks where
each network has its own WINS server.
</para>
<para>Default: <emphasis><parameter>remote browse sync</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>rename user script</primary></indexterm><anchor id="RENAMEUSERSCRIPT"/><title>
rename user script (G)
</title><variablelist><varlistentry><listitem>
<para>
This is the full pathname to a script that will be run as root by <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> under special circumstances described below.
</para>
<para>
When a user with admin authority or SeAddUserPrivilege rights renames a user (e.g.: from the NT4 User Manager
for Domains), this script will be run to rename the POSIX user. Two variables, <literal>%uold</literal> and
<literal>%unew</literal>, will be substituted with the old and new usernames, respectively. The script should
return 0 upon successful completion, and nonzero otherwise.
</para>
<note><para>
The script has all responsibility to rename all the necessary data that is accessible in this posix method.
This can mean different requirements for different backends. The tdbsam and smbpasswd backends will take care
of the contents of their respective files, so the script is responsible only for changing the POSIX username, and
other data that may required for your circumstances, such as home directory. Please also consider whether or
not you need to rename the actual home directories themselves. The ldapsam backend will not make any changes,
because of the potential issues with renaming the LDAP naming attribute. In this case the script is
responsible for changing the attribute that samba uses (uid) for locating users, as well as any data that
needs to change for other applications using the same directory.
</para></note>
<para>Default: <emphasis><parameter>rename user script</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>reset on zero vc</primary></indexterm><anchor id="RESETONZEROVC"/><title>
reset on zero vc (G)
</title><variablelist><varlistentry><listitem>
<para>
This boolean option controls whether an incoming session setup
should kill other connections coming from the same IP. This matches
the default Windows 2003 behaviour.
Setting this parameter to yes becomes necessary when you have a flaky
network and windows decides to reconnect while the old connection
still has files with share modes open. These files become inaccessible
over the new connection.
The client sends a zero VC on the new connection, and Windows 2003
kills all other connections coming from the same IP. This way the
locked files are accessible again.
Please be aware that enabling this option will kill connections behind
a masquerading router.
</para>
<para>Default: <emphasis><parameter>reset on zero vc</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>restrict anonymous</primary></indexterm><anchor id="RESTRICTANONYMOUS"/><title>
restrict anonymous (G)
</title><variablelist><varlistentry><listitem>
<para>The setting of this parameter determines whether user and
group list information is returned for an anonymous connection.
and mirrors the effects of the
<programlisting>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Control\LSA\RestrictAnonymous
</programlisting>
registry key in Windows 2000 and Windows NT. When set to 0, user
and group list information is returned to anyone who asks. When set
to 1, only an authenticated user can retrive user and
group list information. For the value 2, supported by
Windows 2000/XP and Samba, no anonymous connections are allowed at
all. This can break third party and Microsoft
applications which expect to be allowed to perform
operations anonymously.</para>
<para>
The security advantage of using restrict anonymous = 1 is dubious,
as user and group list information can be obtained using other
means.
</para>
<note>
<para>
The security advantage of using restrict anonymous = 2 is removed
by setting <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTOK" xlink:href="smb.conf.5.html#GUESTOK">guest ok = yes</link> on any share.
</para>
</note>
<para>Default: <emphasis><parameter>restrict anonymous</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>root</primary><see>root directory</see></indexterm><title>
<anchor id="ROOT"/>root
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="ROOTDIRECTORY">root directory</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>root dir</primary><see>root directory</see></indexterm><title>
<anchor id="ROOTDIR"/>root dir
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="ROOTDIRECTORY">root directory</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>root directory</primary></indexterm><anchor id="ROOTDIRECTORY"/><title>
root directory (G)
</title><variablelist><varlistentry><listitem>
<para>The server will <literal>chroot()</literal> (i.e.
Change its root directory) to this directory on startup. This is
not strictly necessary for secure operation. Even without it the
server will deny access to files not in one of the service entries.
It may also check for, and deny access to, soft links to other
parts of the filesystem, or attempts to use ".." in file names
to access other directories (depending on the setting of the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WIDESMBCONFOPTIONS" xlink:href="smb.conf.5.html#WIDESMBCONFOPTIONS">wide smbconfoptions</link> parameter).
</para>
<para>Adding a <parameter moreinfo="none">root directory</parameter> entry other
than "/" adds an extra level of security, but at a price. It
absolutely ensures that no access is given to files not in the
sub-tree specified in the <parameter moreinfo="none">root directory</parameter>
option, <emphasis>including</emphasis> some files needed for
complete operation of the server. To maintain full operability
of the server you will need to mirror some system files
into the <parameter moreinfo="none">root directory</parameter> tree. In particular
you will need to mirror <filename moreinfo="none">/etc/passwd</filename> (or a
subset of it), and any binaries or configuration files needed for
printing (if required). The set of files that must be mirrored is
operating system dependent.</para>
<para>Default: <emphasis><parameter>root directory</parameter> = <literal>/</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>root directory</parameter> = <literal>/homes/smb</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>root postexec</primary></indexterm><anchor id="ROOTPOSTEXEC"/><title>
root postexec (S)
</title><variablelist><varlistentry><listitem>
<para>
This is the same as the <parameter moreinfo="none">postexec</parameter>
parameter except that the command is run as root. This is useful for
unmounting filesystems (such as CDROMs) after a connection is closed.
</para>
<para>Default: <emphasis><parameter>root postexec</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>root preexec close</primary></indexterm><anchor id="ROOTPREEXECCLOSE"/><title>
root preexec close (S)
</title><variablelist><varlistentry><listitem>
<para>This is the same as the <parameter moreinfo="none">preexec close
</parameter> parameter except that the command is run as root.</para>
<para>Default: <emphasis><parameter>root preexec close</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>root preexec</primary></indexterm><anchor id="ROOTPREEXEC"/><title>
root preexec (S)
</title><variablelist><varlistentry><listitem>
<para>
This is the same as the <parameter moreinfo="none">preexec</parameter>
parameter except that the command is run as root. This is useful for
mounting filesystems (such as CDROMs) when a connection is opened.
</para>
<para>Default: <emphasis><parameter>root preexec</parameter> = <literal/>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>security mask</primary></indexterm><anchor id="SECURITYMASK"/><title>
security mask (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter controls what UNIX permission bits will be set when a Windows NT client is manipulating the
UNIX permission on a file using the native NT security dialog box.
</para>
<para>
This parameter is applied as a mask (AND'ed with) to the incoming permission bits, thus resetting
any bits not in this mask. Make sure not to mix up this parameter with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="FORCESECURITYMODE" xlink:href="smb.conf.5.html#FORCESECURITYMODE">force security mode</link>, which works in a manner similar to this one but uses a logical OR instead of an AND.
</para>
<para>
Essentially, all bits set to zero in this mask will result in setting to zero the corresponding bits on the
file permissions regardless of the previous status of this bits on the file.
</para>
<para>
If not set explicitly this parameter is 0777, allowing a user to set all the user/group/world permissions on a file.
</para>
<para><emphasis>
Note</emphasis> that users who can access the Samba server through other means can easily bypass this
restriction, so it is primarily useful for standalone "appliance" systems. Administrators of
most normal systems will probably want to leave it set to <constant>0777</constant>.
</para>
<para>Default: <emphasis><parameter>security mask</parameter> = <literal>0777</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>security mask</parameter> = <literal>0770</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>security</primary></indexterm><anchor id="SECURITY"/><title>
security (G)
</title><variablelist><varlistentry><listitem>
<para>This option affects how clients respond to
Samba and is one of the most important settings in the <filename moreinfo="none">
smb.conf</filename> file.</para>
<para>The option sets the "security mode bit" in replies to
protocol negotiations with <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> to turn share level security on or off. Clients decide
based on this bit whether (and how) to transfer user and password
information to the server.</para>
<para>The default is <literal>security = user</literal>, as this is
the most common setting needed when talking to Windows 98 and
Windows NT.</para>
<para>The alternatives are <literal>security = share</literal>,
<literal>security = server</literal> or <literal>security = domain
</literal>.</para>
<para>In versions of Samba prior to 2.0.0, the default was
<literal>security = share</literal> mainly because that was
the only option at one stage.</para>
<para>There is a bug in WfWg that has relevance to this
setting. When in user or server level security a WfWg client
will totally ignore the username and password you type in the "connect
drive" dialog box. This makes it very difficult (if not impossible)
to connect to a Samba service as anyone except the user that
you are logged into WfWg as.</para>
<para>If your PCs use usernames that are the same as their
usernames on the UNIX machine then you will want to use
<literal>security = user</literal>. If you mostly use usernames
that don't exist on the UNIX box then use <literal>security =
share</literal>.</para>
<para>You should also use <literal>security = share</literal> if you
want to mainly setup shares without a password (guest shares). This
is commonly used for a shared printer server. It is more difficult
to setup guest shares with <literal>security = user</literal>, see
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPTOGUEST" xlink:href="smb.conf.5.html#MAPTOGUEST">map to guest</link>parameter for details.</para>
<para>It is possible to use <literal>smbd</literal> in a <emphasis>
hybrid mode</emphasis> where it is offers both user and share
level security under different <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="NETBIOSALIASES" xlink:href="smb.conf.5.html#NETBIOSALIASES">NetBIOS aliases</link>. </para>
<para>The different settings will now be explained.</para>
<para><anchor id="SECURITYEQUALSSHARE"/><emphasis>SECURITY = SHARE</emphasis></para>
<para>When clients connect to a share level security server they
need not log onto the server with a valid username and password before
attempting to connect to a shared resource (although modern clients
such as Windows 95/98 and Windows NT will send a logon request with
a username but no password when talking to a <literal>security = share
</literal> server). Instead, the clients send authentication information
(passwords) on a per-share basis, at the time they attempt to connect
to that share.</para>
<para>Note that <literal>smbd</literal> <emphasis>ALWAYS</emphasis>
uses a valid UNIX user to act on behalf of the client, even in
<literal>security = share</literal> level security.</para>
<para>As clients are not required to send a username to the server
in share level security, <literal>smbd</literal> uses several
techniques to determine the correct UNIX user to use on behalf
of the client.</para>
<para>A list of possible UNIX usernames to match with the given
client password is constructed using the following methods :</para>
<itemizedlist>
<listitem>
<para>If the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTONLY" xlink:href="smb.conf.5.html#GUESTONLY">guest only</link> parameter is set, then all the other
stages are missed and only the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link> username is checked.
</para>
</listitem>
<listitem>
<para>Is a username is sent with the share connection
request, then this username (after mapping - see <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USERNAMEMAP" xlink:href="smb.conf.5.html#USERNAMEMAP">username map</link>),
is added as a potential username.
</para>
</listitem>
<listitem>
<para>If the client did a previous <emphasis>logon
</emphasis> request (the SessionSetup SMB call) then the
username sent in this SMB will be added as a potential username.
</para>
</listitem>
<listitem>
<para>The name of the service the client requested is
added as a potential username.
</para>
</listitem>
<listitem>
<para>The NetBIOS name of the client is added to
the list as a potential username.
</para>
</listitem>
<listitem>
<para>Any users on the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USER" xlink:href="smb.conf.5.html#USER">user</link> list are added as potential usernames.
</para>
</listitem>
</itemizedlist>
<para>If the <parameter moreinfo="none">guest only</parameter> parameter is
not set, then this list is then tried with the supplied password.
The first user for whom the password matches will be used as the
UNIX user.</para>
<para>If the <parameter moreinfo="none">guest only</parameter> parameter is
set, or no username can be determined then if the share is marked
as available to the <parameter moreinfo="none">guest account</parameter>, then this
guest user will be used, otherwise access is denied.</para>
<para>Note that it can be <emphasis>very</emphasis> confusing
in share-level security as to which UNIX username will eventually
be used in granting access.</para>
<para>See also the section <link linkend="VALIDATIONSECT">
NOTE ABOUT USERNAME/PASSWORD VALIDATION</link>.</para>
<para><anchor id="SECURITYEQUALSUSER"/><emphasis>SECURITY = USER</emphasis></para>
<para>This is the default security setting in Samba 3.0.
With user-level security a client must first "log-on" with a
valid username and password (which can be mapped using the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USERNAMEMAP" xlink:href="smb.conf.5.html#USERNAMEMAP">username map</link>
parameter). Encrypted passwords (see the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTEDPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTEDPASSWORDS">encrypted passwords</link> parameter) can also
be used in this security mode. Parameters such as <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USER" xlink:href="smb.conf.5.html#USER">user</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTONLY" xlink:href="smb.conf.5.html#GUESTONLY">guest only</link> if set are then applied and
may change the UNIX user to use on this connection, but only after
the user has been successfully authenticated.</para>
<para><emphasis>Note</emphasis> that the name of the resource being
requested is <emphasis>not</emphasis> sent to the server until after
the server has successfully authenticated the client. This is why
guest shares don't work in user level security without allowing
the server to automatically map unknown users into the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>.
See the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPTOGUEST" xlink:href="smb.conf.5.html#MAPTOGUEST">map to guest</link> parameter for details on doing this.</para>
<para>See also the section <link linkend="VALIDATIONSECT">NOTE ABOUT USERNAME/PASSWORD VALIDATION</link>.</para>
<para><anchor id="SECURITYEQUALSDOMAIN"/><emphasis>SECURITY = DOMAIN</emphasis></para>
<para>This mode will only work correctly if <citerefentry><refentrytitle>net</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> has been used to add this
machine into a Windows NT Domain. It expects the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTEDPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTEDPASSWORDS">encrypted passwords</link>
parameter to be set to <constant>yes</constant>. In this
mode Samba will try to validate the username/password by passing
it to a Windows NT Primary or Backup Domain Controller, in exactly
the same way that a Windows NT Server would do.</para>
<para><emphasis>Note</emphasis> that a valid UNIX user must still
exist as well as the account on the Domain Controller to allow
Samba to have a valid UNIX account to map file access to.</para>
<para><emphasis>Note</emphasis> that from the client's point
of view <literal>security = domain</literal> is the same
as <literal>security = user</literal>. It only
affects how the server deals with the authentication,
it does not in any way affect what the client sees.</para>
<para><emphasis>Note</emphasis> that the name of the resource being
requested is <emphasis>not</emphasis> sent to the server until after
the server has successfully authenticated the client. This is why
guest shares don't work in user level security without allowing
the server to automatically map unknown users into the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>.
See the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPTOGUEST" xlink:href="smb.conf.5.html#MAPTOGUEST">map to guest</link> parameter for details on doing this.</para>
<para>See also the section <link linkend="VALIDATIONSECT">
NOTE ABOUT USERNAME/PASSWORD VALIDATION</link>.</para>
<para>See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWORDSERVER" xlink:href="smb.conf.5.html#PASSWORDSERVER">password server</link> parameter and
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTEDPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTEDPASSWORDS">encrypted passwords</link> parameter.</para>
<para><anchor id="SECURITYEQUALSSERVER"/><emphasis>SECURITY = SERVER</emphasis></para>
<para>
In this mode Samba will try to validate the username/password by passing it to another SMB server, such as an
NT box. If this fails it will revert to <literal>security = user</literal>. It expects the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTEDPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTEDPASSWORDS">encrypted passwords</link> parameter to be set to <constant>yes</constant>, unless the remote
server does not support them. However note that if encrypted passwords have been negotiated then Samba cannot
revert back to checking the UNIX password file, it must have a valid <filename moreinfo="none">smbpasswd</filename> file to check users against. See the chapter about the User Database in
the Samba HOWTO Collection for details on how to set this up.
</para>
<note><para>This mode of operation has
significant pitfalls since it is more vulnerable to
man-in-the-middle attacks and server impersonation. In particular,
this mode of operation can cause significant resource consuption on
the PDC, as it must maintain an active connection for the duration
of the user's session. Furthermore, if this connection is lost,
there is no way to reestablish it, and futher authentications to the
Samba server may fail (from a single client, till it disconnects).
</para></note>
<note><para>From the client's point of
view <literal>security = server</literal> is the
same as <literal>security = user</literal>. It
only affects how the server deals with the authentication, it does
not in any way affect what the client sees.</para></note>
<para><emphasis>Note</emphasis> that the name of the resource being
requested is <emphasis>not</emphasis> sent to the server until after
the server has successfully authenticated the client. This is why
guest shares don't work in user level security without allowing
the server to automatically map unknown users into the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="GUESTACCOUNT" xlink:href="smb.conf.5.html#GUESTACCOUNT">guest account</link>.
See the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPTOGUEST" xlink:href="smb.conf.5.html#MAPTOGUEST">map to guest</link> parameter for details on doing this.</para>
<para>See also the section <link linkend="VALIDATIONSECT">
NOTE ABOUT USERNAME/PASSWORD VALIDATION</link>.</para>
<para>See also the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWORDSERVER" xlink:href="smb.conf.5.html#PASSWORDSERVER">password server</link> parameter and the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTEDPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTEDPASSWORDS">encrypted passwords</link> parameter.</para>
<para><anchor id="SECURITYEQUALSADS"/><emphasis>SECURITY = ADS</emphasis></para>
<para>In this mode, Samba will act as a domain member in an ADS realm. To operate
in this mode, the machine running Samba will need to have Kerberos installed
and configured and Samba will need to be joined to the ADS realm using the
net utility. </para>
<para>Note that this mode does NOT make Samba operate as a Active Directory Domain
Controller. </para>
<para>Read the chapter about Domain Membership in the HOWTO for details.</para>
<para>Default: <emphasis><parameter>security</parameter> = <literal>USER</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>security</parameter> = <literal>DOMAIN</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>server schannel</primary></indexterm><anchor id="SERVERSCHANNEL"/><title>
server schannel (G)
</title><variablelist><varlistentry><listitem>
<para>
This controls whether the server offers or even demands the use of the netlogon schannel.
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SERVERSCHANNEL" xlink:href="smb.conf.5.html#SERVERSCHANNEL">server schannel = no</link> does not offer the schannel, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SERVERSCHANNEL" xlink:href="smb.conf.5.html#SERVERSCHANNEL">server schannel = auto</link> offers the schannel but does not enforce it, and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SERVERSCHANNEL" xlink:href="smb.conf.5.html#SERVERSCHANNEL">server schannel = yes</link> denies access if the client is not able to speak netlogon schannel.
This is only the case for Windows NT4 before SP4.
</para>
<para>
Please note that with this set to <literal>no</literal> you will have to apply the WindowsXP
<filename>WinXP_SignOrSeal.reg</filename> registry patch found in the docs/registry subdirectory of the Samba distribution tarball.
</para>
<para>Default: <emphasis><parameter>server schannel</parameter> = <literal>auto</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>server schannel</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>server signing</primary></indexterm><anchor id="SERVERSIGNING"/><title>
server signing (G)
</title><variablelist><varlistentry><listitem>
<para>This controls whether the server offers or requires
the client it talks to to use SMB signing. Possible values
are <emphasis>auto</emphasis>, <emphasis>mandatory</emphasis>
and <emphasis>disabled</emphasis>.
</para>
<para>When set to auto, SMB signing is offered, but not enforced.
When set to mandatory, SMB signing is required and if set
to disabled, SMB signing is not offered either.</para>
<para>Default: <emphasis><parameter>server signing</parameter> = <literal>Disabled</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>server string</primary></indexterm><anchor id="SERVERSTRING"/><title>
server string (G)
</title><variablelist><varlistentry><listitem>
<para>This controls what string will show up in the printer comment box in print
manager and next to the IPC connection in <literal>net view</literal>. It
can be any string that you wish to show to your users.</para>
<para>It also sets what will appear in browse lists next
to the machine name.</para>
<para>A <parameter moreinfo="none">%v</parameter> will be replaced with the Samba
version number.</para>
<para>A <parameter moreinfo="none">%h</parameter> will be replaced with the
hostname.</para>
<para>Default: <emphasis><parameter>server string</parameter> = <literal>Samba %v</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>server string</parameter> = <literal>University of GNUs Samba Server</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>set directory</primary></indexterm><anchor id="SETDIRECTORY"/><title>
set directory (S)
</title><variablelist><varlistentry><listitem>
<para>
If <literal>set directory = no</literal>, then users of the
service may not use the setdir command to change directory.
</para>
<para>
The <literal>setdir</literal> command is only implemented
in the Digital Pathworks client. See the Pathworks documentation
for details.
</para>
<para>Default: <emphasis><parameter>set directory</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>set primary group script</primary></indexterm><anchor id="SETPRIMARYGROUPSCRIPT"/><title>
set primary group script (G)
</title><variablelist><varlistentry><listitem>
<para>Thanks to the Posix subsystem in NT a Windows User has a
primary group in addition to the auxiliary groups. This script
sets the primary group in the unix userdatase when an
administrator sets the primary group from the windows user
manager or when fetching a SAM with <literal>net rpc
vampire</literal>. <parameter>%u</parameter> will be replaced
with the user whose primary group is to be set.
<parameter>%g</parameter> will be replaced with the group to
set.</para>
<para>Default: <emphasis><parameter>set primary group script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>set primary group script</parameter> = <literal>/usr/sbin/usermod -g '%g' '%u'</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>set quota command</primary></indexterm><anchor id="SETQUOTACOMMAND"/><title>
set quota command (G)
</title><variablelist><varlistentry><listitem>
<para>The <literal>set quota command</literal> should only be used
whenever there is no operating system API available from the OS that
samba can use.</para>
<para>This option is only available if Samba was configured with the argument <literal>--with-sys-quotas</literal> or
on linux when <literal>./configure --with-quotas</literal> was used and a working quota api
was found in the system. Most packages are configured with these options already.</para>
<para>This parameter should specify the path to a script that
can set quota for the specified arguments.</para>
<para>The specified script should take the following arguments:</para>
<itemizedlist>
<listitem><para>1 - quota type
<itemizedlist>
<listitem><para>1 - user quotas</para></listitem>
<listitem><para>2 - user default quotas (uid = -1)</para></listitem>
<listitem><para>3 - group quotas</para></listitem>
<listitem><para>4 - group default quotas (gid = -1)</para></listitem>
</itemizedlist></para></listitem>
<listitem><para>2 - id (uid for user, gid for group, -1 if N/A)</para></listitem>
<listitem><para>3 - quota state (0 = disable, 1 = enable, 2 = enable and enforce)</para></listitem>
<listitem><para>4 - block softlimit</para></listitem>
<listitem><para>5 - block hardlimit</para></listitem>
<listitem><para>6 - inode softlimit</para></listitem>
<listitem><para>7 - inode hardlimit</para></listitem>
<listitem><para>8(optional) - block size, defaults to 1024</para></listitem>
</itemizedlist>
<para>The script should output at least one line of data on success. And nothing on failure.</para>
<para>Default: <emphasis><parameter>set quota command</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>set quota command</parameter> = <literal>/usr/local/sbin/set_quota</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>share modes</primary></indexterm><anchor id="SHAREMODES"/><title>
share modes (S)
</title><variablelist><varlistentry><listitem>
<para>This enables or disables the honoring of
the <parameter moreinfo="none">share modes</parameter> during a file open. These
modes are used by clients to gain exclusive read or write access
to a file.</para>
<para>These open modes are not directly supported by UNIX, so
they are simulated using shared memory, or lock files if your
UNIX doesn't support shared memory (almost all do).</para>
<para>The share modes that are enabled by this option are
<constant>DENY_DOS</constant>, <constant>DENY_ALL</constant>,
<constant>DENY_READ</constant>, <constant>DENY_WRITE</constant>,
<constant>DENY_NONE</constant> and <constant>DENY_FCB</constant>.
</para>
<para>This option gives full share compatibility and enabled
by default.</para>
<para>You should <emphasis>NEVER</emphasis> turn this parameter
off as many Windows applications will break if you do so.</para>
<para>Default: <emphasis><parameter>share modes</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>short preserve case</primary></indexterm><anchor id="SHORTPRESERVECASE"/><title>
short preserve case (S)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter controls if new files which conform to 8.3 syntax, that is all in upper case and of
suitable length, are created upper case, or if they are forced to be the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DEFAULTCASE" xlink:href="smb.conf.5.html#DEFAULTCASE">default case</link>.
This option can be use with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PRESERVECASE" xlink:href="smb.conf.5.html#PRESERVECASE">preserve case = yes</link> to permit long filenames
to retain their case, while short names are lowered.
</para>
<para>See the section on <link linkend="NAMEMANGLINGSECT">NAME MANGLING</link>.</para>
<para>Default: <emphasis><parameter>short preserve case</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>show add printer wizard</primary></indexterm><anchor id="SHOWADDPRINTERWIZARD"/><title>
show add printer wizard (G)
</title><variablelist><varlistentry><listitem>
<para>With the introduction of MS-RPC based printing support
for Windows NT/2000 client in Samba 2.2, a "Printers..." folder will
appear on Samba hosts in the share listing. Normally this folder will
contain an icon for the MS Add Printer Wizard (APW). However, it is
possible to disable this feature regardless of the level of privilege
of the connected user.</para>
<para>Under normal circumstances, the Windows NT/2000 client will
open a handle on the printer server with OpenPrinterEx() asking for
Administrator privileges. If the user does not have administrative
access on the print server (i.e is not root or a member of the
<parameter moreinfo="none">printer admin</parameter> group), the OpenPrinterEx()
call fails and the client makes another open call with a request for
a lower privilege level. This should succeed, however the APW
icon will not be displayed.</para>
<para>Disabling the <parameter moreinfo="none">show add printer wizard</parameter>
parameter will always cause the OpenPrinterEx() on the server
to fail. Thus the APW icon will never be displayed.
</para>
<note><para>This does not prevent the same user from having
administrative privilege on an individual printer.</para></note>
<para>Default: <emphasis><parameter>show add printer wizard</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>shutdown script</primary></indexterm><anchor id="SHUTDOWNSCRIPT"/><title>
shutdown script (G)
</title><variablelist><varlistentry><listitem>
<para>This a full path name to a script called by
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> that should
start a shutdown procedure.</para>
<para>If the connected user posseses the <constant>SeRemoteShutdownPrivilege</constant>,
right, this command will be run as user.</para>
<para>The %z %t %r %f variables are expanded as follows:</para>
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">%z</parameter> will be substituted with the
shutdown message sent to the server.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">%t</parameter> will be substituted with the
number of seconds to wait before effectively starting the
shutdown procedure.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">%r</parameter> will be substituted with the
switch <emphasis>-r</emphasis>. It means reboot after shutdown
for NT.</para>
</listitem>
<listitem>
<para><parameter moreinfo="none">%f</parameter> will be substituted with the
switch <emphasis>-f</emphasis>. It means force the shutdown
even if applications do not respond for NT.</para>
</listitem>
</itemizedlist>
<para>Shutdown script example:
<programlisting format="linespecific">
#!/bin/bash
$time=0
let "time/60"
let "time++"
/sbin/shutdown $3 $4 +$time $1 &
</programlisting>
Shutdown does not return so we need to launch it in background.
</para>
<para>Default: <emphasis><parameter>shutdown script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>shutdown script</parameter> = <literal>/usr/local/samba/sbin/shutdown %m %t %r %f</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>smb encrypt</primary></indexterm><anchor id="SMBENCRYPT"/><title>
smb encrypt (S)
</title><variablelist><varlistentry><listitem>
<para>This is a new feature introduced with Samba 3.2 and above. It is an
extension to the SMB/CIFS protocol negotiated as part of the UNIX extensions.
SMB encryption uses the GSSAPI (SSPI on Windows) ability to encrypt
and sign every request/response in a SMB protocol stream. When
enabled it provides a secure method of SMB/CIFS communication,
similar to an ssh protected session, but using SMB/CIFS authentication
to negotiate encryption and signing keys. Currently this is only
supported by Samba 3.2 smbclient, and hopefully soon Linux CIFSFS
and MacOS/X clients. Windows clients do not support this feature.
</para>
<para>This controls whether the server offers or requires
the client it talks to to use SMB encryption. Possible values
are <emphasis>auto</emphasis>, <emphasis>mandatory</emphasis>
and <emphasis>disabled</emphasis>. This may be set on a per-share
basis, but clients may chose to encrypt the entire session, not
just traffic to a specific share. If this is set to mandatory
then all traffic to a share <emphasis>must</emphasis> must
be encrypted once the connection has been made to the share.
The server would return "access denied" to all non-encrypted
requests on such a share. Selecting encrypted traffic reduces
throughput as smaller packet sizes must be used (no huge UNIX
style read/writes allowed) as well as the overhead of encrypting
and signing all the data.
</para>
<para>If SMB encryption is selected, Windows style SMB signing (see
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SERVERSIGNING" xlink:href="smb.conf.5.html#SERVERSIGNING">server signing</link> option) is no longer necessary,
as the GSSAPI flags use select both signing and sealing of the data.
</para>
<para>When set to auto, SMB encryption is offered, but not enforced.
When set to mandatory, SMB encryption is required and if set
to disabled, SMB encryption can not be negotiated.</para>
<para>Default: <emphasis><parameter>smb encrypt</parameter> = <literal>auto</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>smb passwd file</primary></indexterm><anchor id="SMBPASSWDFILE"/><title>
smb passwd file (G)
</title><variablelist><varlistentry><listitem>
<para>This option sets the path to the encrypted smbpasswd file. By
default the path to the smbpasswd file is compiled into Samba.</para>
<para>
An example of use is:
<programlisting>
smb passwd file = /etc/samba/smbpasswd
</programlisting>
</para>
<para>Default: <emphasis><parameter>smb passwd file</parameter> = <literal>${prefix}/private/smbpasswd</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>smb ports</primary></indexterm><anchor id="SMBPORTS"/><title>
smb ports (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies which ports the server should listen on for SMB traffic.</para>
<para>Default: <emphasis><parameter>smb ports</parameter> = <literal>445 139</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>socket address</primary></indexterm><anchor id="SOCKETADDRESS"/><title>
socket address (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows you to control what
address Samba will listen for connections on. This is used to
support multiple virtual interfaces on the one server, each
with a different configuration.</para>
<para>By default Samba will accept connections on any
address.</para>
<para>Default: <emphasis><parameter>socket address</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>socket address</parameter> = <literal>192.168.2.20</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>socket options</primary></indexterm><anchor id="SOCKETOPTIONS"/><title>
socket options (G)
</title><variablelist><varlistentry><listitem>
<para>This option allows you to set socket options
to be used when talking with the client.</para>
<para>Socket options are controls on the networking layer
of the operating systems which allow the connection to be
tuned.</para>
<para>This option will typically be used to tune your Samba server
for optimal performance for your local network. There is no way
that Samba can know what the optimal parameters are for your net,
so you must experiment and choose them yourself. We strongly
suggest you read the appropriate documentation for your operating
system first (perhaps <literal>man
setsockopt</literal> will help).</para>
<para>You may find that on some systems Samba will say
"Unknown socket option" when you supply an option. This means you
either incorrectly typed it or you need to add an include file
to includes.h for your OS. If the latter is the case please
send the patch to <ulink url="mailto:samba-technical@samba.org">
samba-technical@samba.org</ulink>.</para>
<para>Any of the supported socket options may be combined
in any way you like, as long as your OS allows it.</para>
<para>This is the list of socket options currently settable
using this option:</para>
<itemizedlist>
<listitem><para>SO_KEEPALIVE</para></listitem>
<listitem><para>SO_REUSEADDR</para></listitem>
<listitem><para>SO_BROADCAST</para></listitem>
<listitem><para>TCP_NODELAY</para></listitem>
<listitem><para>IPTOS_LOWDELAY</para></listitem>
<listitem><para>IPTOS_THROUGHPUT</para></listitem>
<listitem><para>SO_SNDBUF *</para></listitem>
<listitem><para>SO_RCVBUF *</para></listitem>
<listitem><para>SO_SNDLOWAT *</para></listitem>
<listitem><para>SO_RCVLOWAT *</para></listitem>
</itemizedlist>
<para>Those marked with a <emphasis>'*'</emphasis> take an integer
argument. The others can optionally take a 1 or 0 argument to enable
or disable the option, by default they will be enabled if you
don't specify 1 or 0.</para>
<para>To specify an argument use the syntax SOME_OPTION = VALUE
for example <literal>SO_SNDBUF = 8192</literal>. Note that you must
not have any spaces before or after the = sign.</para>
<para>If you are on a local network then a sensible option
might be:</para>
<para><literal>socket options = IPTOS_LOWDELAY</literal></para>
<para>If you have a local network then you could try:</para>
<para><literal>socket options = IPTOS_LOWDELAY TCP_NODELAY</literal></para>
<para>If you are on a wide area network then perhaps try
setting IPTOS_THROUGHPUT. </para>
<para>Note that several of the options may cause your Samba
server to fail completely. Use these options with caution!</para>
<para>Default: <emphasis><parameter>socket options</parameter> = <literal>TCP_NODELAY</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>socket options</parameter> = <literal>IPTOS_LOWDELAY</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>stat cache</primary></indexterm><anchor id="STATCACHE"/><title>
stat cache (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines if <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will use a cache in order to
speed up case insensitive name mappings. You should never need
to change this parameter.</para>
<para>Default: <emphasis><parameter>stat cache</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>store dos attributes</primary></indexterm><anchor id="STOREDOSATTRIBUTES"/><title>
store dos attributes (S)
</title><variablelist><varlistentry><listitem>
<para>
If this parameter is set Samba attempts to first read DOS attributes (SYSTEM, HIDDEN, ARCHIVE or
READ-ONLY) from a filesystem extended attribute, before mapping DOS attributes to UNIX permission bits (such
as occurs with <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPHIDDEN" xlink:href="smb.conf.5.html#MAPHIDDEN">map hidden</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPREADONLY" xlink:href="smb.conf.5.html#MAPREADONLY">map readonly</link>). When set, DOS
attributes will be stored onto an extended attribute in the UNIX filesystem, associated with the file or
directory. For no other mapping to occur as a fall-back, the parameters <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPHIDDEN" xlink:href="smb.conf.5.html#MAPHIDDEN">map hidden</link>,
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPSYSTEM" xlink:href="smb.conf.5.html#MAPSYSTEM">map system</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPARCHIVE" xlink:href="smb.conf.5.html#MAPARCHIVE">map archive</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="MAPREADONLY" xlink:href="smb.conf.5.html#MAPREADONLY">map readonly</link> must be set to off. This parameter writes the DOS attributes as a string into the extended
attribute named "user.DOSATTRIB". This extended attribute is explicitly hidden from smbd clients requesting an
EA list. On Linux the filesystem must have been mounted with the mount option user_xattr in order for
extended attributes to work, also extended attributes must be compiled into the Linux kernel.
</para>
<para>Default: <emphasis><parameter>store dos attributes</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>strict allocate</primary></indexterm><anchor id="STRICTALLOCATE"/><title>
strict allocate (S)
</title><variablelist><varlistentry><listitem>
<para>This is a boolean that controls the handling of
disk space allocation in the server. When this is set to <constant>yes</constant>
the server will change from UNIX behaviour of not committing real
disk storage blocks when a file is extended to the Windows behaviour
of actually forcing the disk system to allocate real storage blocks
when a file is created or extended to be a given size. In UNIX
terminology this means that Samba will stop creating sparse files.
This can be slow on some systems.</para>
<para>When strict allocate is <constant>no</constant> the server does sparse
disk block allocation when a file is extended.</para>
<para>Setting this to <constant>yes</constant> can help Samba return
out of quota messages on systems that are restricting the disk quota
of users.</para>
<para>Default: <emphasis><parameter>strict allocate</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>strict locking</primary></indexterm><anchor id="STRICTLOCKING"/><title>
strict locking (S)
</title><variablelist><varlistentry><listitem>
<para>
This is an enumerated type that controls the handling of file locking in the server. When this is set to <constant>yes</constant>,
the server will check every read and write access for file locks, and deny access if locks exist. This can be slow on
some systems.
</para>
<para>
When strict locking is set to Auto (the default), the server performs file lock checks only on non-oplocked files.
As most Windows redirectors perform file locking checks locally on oplocked files this is a good trade off for
inproved performance.
</para>
<para>
When strict locking is disabled, the server performs file lock checks only when the client explicitly asks for them.
</para>
<para>
Well-behaved clients always ask for lock checks when it is important. So in the vast majority of cases,
<literal>strict locking = Auto</literal> or
<literal>strict locking = no</literal> is acceptable.
</para>
<para>Default: <emphasis><parameter>strict locking</parameter> = <literal>Auto</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>strict sync</primary></indexterm><anchor id="STRICTSYNC"/><title>
strict sync (S)
</title><variablelist><varlistentry><listitem>
<para>Many Windows applications (including the Windows 98 explorer
shell) seem to confuse flushing buffer contents to disk with doing
a sync to disk. Under UNIX, a sync call forces the process to be
suspended until the kernel has ensured that all outstanding data in
kernel disk buffers has been safely stored onto stable storage.
This is very slow and should only be done rarely. Setting this
parameter to <constant>no</constant> (the default) means that
<citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> ignores the Windows
applications requests for a sync call. There is only a possibility
of losing data if the operating system itself that Samba is running
on crashes, so there is little danger in this default setting. In
addition, this fixes many performance problems that people have
reported with the new Windows98 explorer shell file copies.</para>
<para>Default: <emphasis><parameter>strict sync</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>svcctl list</primary></indexterm><anchor id="SVCCTLLIST"/><title>
svcctl list (G)
</title><variablelist><varlistentry><listitem>
<para>This option defines a list of init scripts that smbd
will use for starting and stopping Unix services via the Win32
ServiceControl API. This allows Windows administrators to
utilize the MS Management Console plug-ins to manage a
Unix server running Samba.</para>
<para>The administrator must create a directory
name <filename>svcctl</filename> in Samba's $(libdir)
and create symbolic links to the init scripts in
<filename>/etc/init.d/</filename>. The name of the links
must match the names given as part of the <parameter>svcctl list</parameter>.
</para>
<para>Default: <emphasis><parameter>svcctl list</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>svcctl list</parameter> = <literal>cups postfix portmap httpd</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>sync always</primary></indexterm><anchor id="SYNCALWAYS"/><title>
sync always (S)
</title><variablelist><varlistentry><listitem>
<para>This is a boolean parameter that controls
whether writes will always be written to stable storage before
the write call returns. If this is <constant>no</constant> then the server will be
guided by the client's request in each write call (clients can
set a bit indicating that a particular write should be synchronous).
If this is <constant>yes</constant> then every write will be followed by a <literal>fsync()
</literal> call to ensure the data is written to disk. Note that
the <parameter moreinfo="none">strict sync</parameter> parameter must be set to
<constant>yes</constant> in order for this parameter to have
any affect.</para>
<para>Default: <emphasis><parameter>sync always</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>syslog only</primary></indexterm><anchor id="SYSLOGONLY"/><title>
syslog only (G)
</title><variablelist><varlistentry><listitem>
<para>
If this parameter is set then Samba debug messages are logged into the system
syslog only, and not to the debug log files. There still will be some
logging to log.[sn]mbd even if <emphasis>syslog only</emphasis> is enabled.
</para>
<para>Default: <emphasis><parameter>syslog only</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>syslog</primary></indexterm><anchor id="SYSLOG"/><title>
syslog (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter maps how Samba debug messages are logged onto the system syslog logging levels.
Samba debug level zero maps onto syslog <constant>LOG_ERR</constant>, debug level one maps onto
<constant>LOG_WARNING</constant>, debug level two maps onto <constant>LOG_NOTICE</constant>,
debug level three maps onto LOG_INFO. All higher levels are mapped to <constant>LOG_DEBUG</constant>.
</para>
<para>
This parameter sets the threshold for sending messages to syslog. Only messages with debug
level less than this value will be sent to syslog. There still will be some
logging to log.[sn]mbd even if <emphasis>syslog only</emphasis> is enabled.
</para>
<para>Default: <emphasis><parameter>syslog</parameter> = <literal>1</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>template homedir</primary></indexterm><anchor id="TEMPLATEHOMEDIR"/><title>
template homedir (G)
</title><variablelist><varlistentry><listitem>
<para>When filling out the user information for a Windows NT
user, the <citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> daemon uses this
parameter to fill in the home directory for that user. If the
string <parameter moreinfo="none">%D</parameter> is present it
is substituted with the user's Windows NT domain name. If the
string <parameter moreinfo="none">%U</parameter> is present it
is substituted with the user's Windows NT user name.</para>
<para>Default: <emphasis><parameter>template homedir</parameter> = <literal>/home/%D/%U</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>template shell</primary></indexterm><anchor id="TEMPLATESHELL"/><title>
template shell (G)
</title><variablelist><varlistentry><listitem>
<para>When filling out the user information for a Windows NT
user, the <citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> daemon uses this
parameter to fill in the login shell for that user.</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>time offset</primary></indexterm><anchor id="TIMEOFFSET"/><title>
time offset (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is a setting in minutes to add
to the normal GMT to local time conversion. This is useful if
you are serving a lot of PCs that have incorrect daylight
saving time handling.</para>
<para>Default: <emphasis><parameter>time offset</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>time offset</parameter> = <literal>60</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>time server</primary></indexterm><anchor id="TIMESERVER"/><title>
time server (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter determines if <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> advertises itself as a time server to Windows
clients.</para>
<para>Default: <emphasis><parameter>time server</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>unix charset</primary></indexterm><anchor id="UNIXCHARSET"/><title>
unix charset (G)
</title><variablelist><varlistentry><listitem>
<para>Specifies the charset the unix machine
Samba runs on uses. Samba needs to know this in order to be able to
convert text to the charsets other SMB clients use.
</para>
<para>This is also the charset Samba will use when specifying arguments
to scripts that it invokes.
</para>
<para>Default: <emphasis><parameter>unix charset</parameter> = <literal>UTF8</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>unix charset</parameter> = <literal>ASCII</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>unix extensions</primary></indexterm><anchor id="UNIXEXTENSIONS"/><title>
unix extensions (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether Samba
implments the CIFS UNIX extensions, as defined by HP.
These extensions enable Samba to better serve UNIX CIFS clients
by supporting features such as symbolic links, hard links, etc...
These extensions require a similarly enabled client, and are of
no current use to Windows clients.</para>
<para>Default: <emphasis><parameter>unix extensions</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>unix password sync</primary></indexterm><anchor id="UNIXPASSWORDSYNC"/><title>
unix password sync (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean parameter controls whether Samba
attempts to synchronize the UNIX password with the SMB password
when the encrypted SMB password in the smbpasswd file is changed.
If this is set to <constant>yes</constant> the program specified in the <parameter moreinfo="none">passwd
program</parameter> parameter is called <emphasis>AS ROOT</emphasis> -
to allow the new UNIX password to be set without access to the
old UNIX password (as the SMB password change code has no
access to the old password cleartext, only the new).</para>
<para>Default: <emphasis><parameter>unix password sync</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>update encrypted</primary></indexterm><anchor id="UPDATEENCRYPTED"/><title>
update encrypted (G)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter allows a user logging on with a plaintext password to have their encrypted (hashed)
password in the smbpasswd file to be updated automatically as they log on. This option allows a site to
migrate from plaintext password authentication (users authenticate with plaintext password over the
wire, and are checked against a UNIX account atabase) to encrypted password authentication (the SMB
challenge/response authentication mechanism) without forcing all users to re-enter their passwords via
smbpasswd at the time the change is made. This is a convenience option to allow the change over to encrypted
passwords to be made over a longer period. Once all users have encrypted representations of their passwords
in the smbpasswd file this parameter should be set to <constant>no</constant>.
</para>
<para>
In order for this parameter to be operative the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTPASSWORDS">encrypt passwords</link> parameter must
be set to <constant>no</constant>. The default value of <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="ENCRYPTPASSWORDS" xlink:href="smb.conf.5.html#ENCRYPTPASSWORDS">encrypt passwords = Yes</link>. Note: This must be set to <constant>no</constant> for this <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="UPDATEENCRYPTED" xlink:href="smb.conf.5.html#UPDATEENCRYPTED">update encrypted</link> to work.
</para>
<para>
Note that even when this parameter is set a user authenticating to <literal>smbd</literal>
must still enter a valid password in order to connect correctly, and to update their hashed (smbpasswd)
passwords.
</para>
<para>Default: <emphasis><parameter>update encrypted</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>use client driver</primary></indexterm><anchor id="USECLIENTDRIVER"/><title>
use client driver (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter applies only to Windows NT/2000
clients. It has no effect on Windows 95/98/ME clients. When
serving a printer to Windows NT/2000 clients without first installing
a valid printer driver on the Samba host, the client will be required
to install a local printer driver. From this point on, the client
will treat the print as a local printer and not a network printer
connection. This is much the same behavior that will occur
when <literal>disable spoolss = yes</literal>.
</para>
<para>The differentiating factor is that under normal
circumstances, the NT/2000 client will attempt to open the network
printer using MS-RPC. The problem is that because the client
considers the printer to be local, it will attempt to issue the
OpenPrinterEx() call requesting access rights associated with the
logged on user. If the user possesses local administator rights but
not root privilege on the Samba host (often the case), the
OpenPrinterEx() call will fail. The result is that the client will
now display an "Access Denied; Unable to connect" message
in the printer queue window (even though jobs may successfully be
printed). </para>
<para>If this parameter is enabled for a printer, then any attempt
to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped
to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx()
call to succeed. <emphasis>This parameter MUST not be able enabled
on a print share which has valid print driver installed on the Samba
server.</emphasis></para>
<para>Default: <emphasis><parameter>use client driver</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>use kerberos keytab</primary></indexterm><anchor id="USEKERBEROSKEYTAB"/><title>
use kerberos keytab (G)
</title><variablelist><varlistentry><listitem>
<para>
Specifies whether Samba should attempt to maintain service principals in the systems
keytab file for <constant>host/FQDN</constant> and <constant>cifs/FQDN</constant>.
</para>
<para>
When you are using the heimdal Kerberos libraries, you must also specify the following in
<filename>/etc/krb5.conf</filename>:
<programlisting>
[libdefaults]
default_keytab_name = FILE:/etc/krb5.keytab
</programlisting>
</para>
<para>Default: <emphasis><parameter>use kerberos keytab</parameter> = <literal>False</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>use mmap</primary></indexterm><anchor id="USEMMAP"/><title>
use mmap (G)
</title><variablelist><varlistentry><listitem>
<para>This global parameter determines if the tdb internals of Samba can
depend on mmap working correctly on the running system. Samba requires a coherent
mmap/read-write system memory cache. Currently only HPUX does not have such a
coherent cache, and so this parameter is set to <constant>no</constant> by
default on HPUX. On all other systems this parameter should be left alone. This
parameter is provided to help the Samba developers track down problems with
the tdb internal code.
</para>
<para>Default: <emphasis><parameter>use mmap</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>username level</primary></indexterm><anchor id="USERNAMELEVEL"/><title>
username level (G)
</title><variablelist><varlistentry><listitem>
<para>This option helps Samba to try and 'guess' at
the real UNIX username, as many DOS clients send an all-uppercase
username. By default Samba tries all lowercase, followed by the
username with the first letter capitalized, and fails if the
username is not found on the UNIX machine.</para>
<para>If this parameter is set to non-zero the behavior changes.
This parameter is a number that specifies the number of uppercase
combinations to try while trying to determine the UNIX user name. The
higher the number the more combinations will be tried, but the slower
the discovery of usernames will be. Use this parameter when you have
strange usernames on your UNIX machine, such as <constant>AstrangeUser
</constant>.</para>
<para>This parameter is needed only on UNIX systems that have case
sensitive usernames.</para>
<para>Default: <emphasis><parameter>username level</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>username level</parameter> = <literal>5</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>username map script</primary></indexterm><anchor id="USERNAMEMAPSCRIPT"/><title>
username map script (G)
</title><variablelist><varlistentry><listitem>
<para>This script is a mutually exclusive alternative to the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="USERNAMEMAP" xlink:href="smb.conf.5.html#USERNAMEMAP">username map</link> parameter. This parameter
specifies and external program or script that must accept a single
command line option (the username transmitted in the authentication
request) and return a line line on standard output (the name to which
the account should mapped). In this way, it is possible to store
username map tables in an LDAP or NIS directory services.
</para>
<para>Default: <emphasis><parameter>username map script</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>username map script</parameter> = <literal>/etc/samba/scripts/mapusers.sh</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>username map</primary></indexterm><anchor id="USERNAMEMAP"/><title>
username map (G)
</title><variablelist><varlistentry><listitem>
<para>
This option allows you to specify a file containing a mapping of usernames from the clients to the server.
This can be used for several purposes. The most common is to map usernames that users use on DOS or Windows
machines to those that the UNIX box uses. The other is to map multiple users to a single username so that they
can more easily share files.
</para>
<para>
Please note that for user or share mode security, the username map is applied prior to validating the user
credentials. Domain member servers (domain or ads) apply the username map after the user has been
successfully authenticated by the domain controller and require fully qualified enties in the map table (e.g.
biddle = <literal>DOMAIN\foo</literal>).
</para>
<para>
The map file is parsed line by line. Each line should contain a single UNIX username on the left then a '='
followed by a list of usernames on the right. The list of usernames on the right may contain names of the form
@group in which case they will match any UNIX username in that group. The special client name '*' is a
wildcard and matches any name. Each line of the map file may be up to 1023 characters long.
</para>
<para>
The file is processed on each line by taking the supplied username and comparing it with each username on the
right hand side of the '=' signs. If the supplied name matches any of the names on the right hand side then it
is replaced with the name on the left. Processing then continues with the next line.
</para>
<para>
If any line begins with a '#' or a ';' then it is ignored.
</para>
<para>
If any line begins with an '!' then the processing will stop after that line if a mapping was done by the
line. Otherwise mapping continues with every line being processed. Using '!' is most useful when you have a
wildcard mapping line later in the file.
</para>
<para>
For example to map from the name <constant>admin</constant> or <constant>administrator</constant> to the UNIX
name <constant> root</constant> you would use:
<programlisting>
<literal>root = admin administrator</literal>
</programlisting>
Or to map anyone in the UNIX group <constant>system</constant> to the UNIX name <constant>sys</constant> you would use:
<programlisting>
<literal>sys = @system</literal>
</programlisting>
</para>
<para>
You can have as many mappings as you like in a username map file.
</para>
<para>
If your system supports the NIS NETGROUP option then the netgroup database is checked before the <filename moreinfo="none">/etc/group </filename> database for matching groups.
</para>
<para>
You can map Windows usernames that have spaces in them by using double quotes around the name. For example:
<programlisting>
<literal>tridge = "Andrew Tridgell"</literal>
</programlisting>
would map the windows username "Andrew Tridgell" to the unix username "tridge".
</para>
<para>
The following example would map mary and fred to the unix user sys, and map the rest to guest. Note the use of the
'!' to tell Samba to stop processing if it gets a match on that line:
<programlisting format="linespecific">
!sys = mary fred
guest = *
</programlisting>
</para>
<para>
Note that the remapping is applied to all occurrences of usernames. Thus if you connect to \\server\fred and
<constant>fred</constant> is remapped to <constant>mary</constant> then you will actually be connecting to
\\server\mary and will need to supply a password suitable for <constant>mary</constant> not
<constant>fred</constant>. The only exception to this is the username passed to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PASSWORDSERVER" xlink:href="smb.conf.5.html#PASSWORDSERVER">password server</link> (if you have one). The password server will receive whatever username the client
supplies without modification.
</para>
<para>
Also note that no reverse mapping is done. The main effect this has is with printing. Users who have been
mapped may have trouble deleting print jobs as PrintManager under WfWg will think they don't own the print
job.
</para>
<para>
Samba versions prior to 3.0.8 would only support reading the fully qualified username
(e.g.: <literal>DOMAIN\user</literal>) from
the username map when performing a kerberos login from a client. However, when looking up a map entry for a
user authenticated by NTLM[SSP], only the login name would be used for matches. This resulted in inconsistent
behavior sometimes even on the same server.
</para>
<para>
The following functionality is obeyed in version 3.0.8 and later:
</para>
<para>
When performing local authentication, the username map is applied to the login name before attempting to authenticate
the connection.
</para>
<para>
When relying upon a external domain controller for validating authentication requests, smbd will apply the username map
to the fully qualified username (i.e. <literal>DOMAIN\user</literal>) only after the user has been successfully authenticated.
</para>
<para>
An example of use is:
<programlisting>
username map = /usr/local/samba/lib/users.map
</programlisting>
</para>
<para>Default: <emphasis><parameter>username map</parameter> = <literal>
# no username map</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>user</primary><see>username</see></indexterm><title>
<anchor id="USER"/>user
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="USERNAME">username</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>users</primary><see>username</see></indexterm><title>
<anchor id="USERS"/>users
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="USERNAME">username</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>username</primary></indexterm><anchor id="USERNAME"/><title>
username (S)
</title><variablelist><varlistentry><listitem>
<para>Multiple users may be specified in a comma-delimited
list, in which case the supplied password will be tested against
each username in turn (left to right).</para>
<para>The <parameter moreinfo="none">username</parameter> line is needed only when
the PC is unable to supply its own username. This is the case
for the COREPLUS protocol or where your users have different WfWg
usernames to UNIX usernames. In both these cases you may also be
better using the \\server\share%user syntax instead.</para>
<para>The <parameter moreinfo="none">username</parameter> line is not a great
solution in many cases as it means Samba will try to validate
the supplied password against each of the usernames in the
<parameter moreinfo="none">username</parameter> line in turn. This is slow and
a bad idea for lots of users in case of duplicate passwords.
You may get timeouts or security breaches using this parameter
unwisely.</para>
<para>Samba relies on the underlying UNIX security. This
parameter does not restrict who can login, it just offers hints
to the Samba server as to what usernames might correspond to the
supplied password. Users can login as whoever they please and
they will be able to do no more damage than if they started a
telnet session. The daemon runs as the user that they log in as,
so they cannot do anything that user cannot do.</para>
<para>To restrict a service to a particular set of users you
can use the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="VALIDUSERS" xlink:href="smb.conf.5.html#VALIDUSERS">valid users</link> parameter.</para>
<para>If any of the usernames begin with a '@' then the name
will be looked up first in the NIS netgroups list (if Samba
is compiled with netgroup support), followed by a lookup in
the UNIX groups database and will expand to a list of all users
in the group of that name.</para>
<para>If any of the usernames begin with a '+' then the name
will be looked up only in the UNIX groups database and will
expand to a list of all users in the group of that name.</para>
<para>If any of the usernames begin with a '&' then the name
will be looked up only in the NIS netgroups database (if Samba
is compiled with netgroup support) and will expand to a list
of all users in the netgroup group of that name.</para>
<para>Note that searching though a groups database can take
quite some time, and some clients may time out during the
search.</para>
<para>See the section <link linkend="VALIDATIONSECT">NOTE ABOUT
USERNAME/PASSWORD VALIDATION</link> for more information on how
this parameter determines access to the services.</para>
<para>Default: <emphasis><parameter>username</parameter> = <literal>
# The guest account if a guest service,
else <empty string>.</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>username</parameter> = <literal>fred, mary, jack, jane, @users, @pcgroup</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare allow guests</primary></indexterm><anchor id="USERSHAREALLOWGUESTS"/><title>
usershare allow guests (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether user defined shares are allowed
to be accessed by non-authenticated users or not. It is the equivalent
of allowing people who can create a share the option of setting
<parameter moreinfo="none">guest ok = yes</parameter> in a share
definition. Due to the security sensitive nature of this the default
is set to off.</para>
<para>Default: <emphasis><parameter>usershare allow guests</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare max shares</primary></indexterm><anchor id="USERSHAREMAXSHARES"/><title>
usershare max shares (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the number of user defined shares
that are allowed to be created by users belonging to the group owning the
usershare directory. If set to zero (the default) user defined shares are ignored.
</para>
<para>Default: <emphasis><parameter>usershare max shares</parameter> = <literal>0</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare owner only</primary></indexterm><anchor id="USERSHAREOWNERONLY"/><title>
usershare owner only (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether the pathname exported by
a user defined shares must be owned by the user creating the
user defined share or not. If set to True (the default) then
smbd checks that the directory path being shared is owned by
the user who owns the usershare file defining this share and
refuses to create the share if not. If set to False then no
such check is performed and any directory path may be exported
regardless of who owns it.
</para>
<para>Default: <emphasis><parameter>usershare owner only</parameter> = <literal>True</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare path</primary></indexterm><anchor id="USERSHAREPATH"/><title>
usershare path (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the absolute path of the directory on the
filesystem used to store the user defined share definition files.
This directory must be owned by root, and have no access for
other, and be writable only by the group owner. In addition the
"sticky" bit must also be set, restricting rename and delete to
owners of a file (in the same way the /tmp directory is usually configured).
Members of the group owner of this directory are the users allowed to create
usershares. If this parameter is undefined then no user defined
shares are allowed.
</para>
<para>
For example, a valid usershare directory might be /usr/local/samba/lib/usershares,
set up as follows.
</para>
<para>
<programlisting>
ls -ld /usr/local/samba/lib/usershares/
drwxrwx--T 2 root power_users 4096 2006-05-05 12:27 /usr/local/samba/lib/usershares/
</programlisting>
</para>
<para>
In this case, only members of the group "power_users" can create user defined shares.
</para>
<para>Default: <emphasis><parameter>usershare path</parameter> = <literal>NULL</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare prefix allow list</primary></indexterm><anchor id="USERSHAREPREFIXALLOWLIST"/><title>
usershare prefix allow list (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies a list of absolute pathnames
the root of which are allowed to be exported by user defined share definitions.
If the pathname exported doesn't start with one of the strings in this
list the user defined share will not be allowed. This allows the Samba
administrator to restrict the directories on the system that can be
exported by user defined shares.
</para>
<para>
If there is a "usershare prefix deny list" and also a
"usershare prefix allow list" the deny list is processed
first, followed by the allow list, thus leading to the most
restrictive interpretation.
</para>
<para>Default: <emphasis><parameter>usershare prefix allow list</parameter> = <literal>NULL</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>usershare prefix allow list</parameter> = <literal>/home /data /space</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare prefix deny list</primary></indexterm><anchor id="USERSHAREPREFIXDENYLIST"/><title>
usershare prefix deny list (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies a list of absolute pathnames
the root of which are NOT allowed to be exported by user defined share definitions.
If the pathname exported starts with one of the strings in this
list the user defined share will not be allowed. Any pathname not
starting with one of these strings will be allowed to be exported
as a usershare. This allows the Samba administrator to restrict the
directories on the system that can be exported by user defined shares.
</para>
<para>
If there is a "usershare prefix deny list" and also a
"usershare prefix allow list" the deny list is processed
first, followed by the allow list, thus leading to the most
restrictive interpretation.
</para>
<para>Default: <emphasis><parameter>usershare prefix deny list</parameter> = <literal>NULL</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>usershare prefix deny list</parameter> = <literal>/etc /dev /private</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>usershare template share</primary></indexterm><anchor id="USERSHARETEMPLATESHARE"/><title>
usershare template share (G)
</title><variablelist><varlistentry><listitem>
<para>User defined shares only have limited possible parameters
such as path, guest ok etc. This parameter allows usershares to
"cloned" from an existing share. If "usershare template share"
is set to the name of an existing share, then all usershares
created have their defaults set from the parameters set on this
share.
</para>
<para>
The target share may be set to be invalid for real file
sharing by setting the parameter "-valid = False" on the template
share definition. This causes it not to be seen as a real exported
share but to be able to be used as a template for usershares.
</para>
<para>Default: <emphasis><parameter>usershare template share</parameter> = <literal>NULL</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>usershare template share</parameter> = <literal>template_share</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>use sendfile</primary></indexterm><anchor id="USESENDFILE"/><title>
use sendfile (S)
</title><variablelist><varlistentry><listitem>
<para>If this parameter is <constant>yes</constant>, and the <constant>sendfile()</constant>
system call is supported by the underlying operating system, then some SMB read calls
(mainly ReadAndX and ReadRaw) will use the more efficient sendfile system call for files that
are exclusively oplocked. This may make more efficient use of the system CPU's
and cause Samba to be faster. Samba automatically turns this off for clients
that use protocol levels lower than NT LM 0.12 and when it detects a client is
Windows 9x (using sendfile from Linux will cause these clients to fail).
</para>
<para>Default: <emphasis><parameter>use sendfile</parameter> = <literal>false</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>use spnego</primary></indexterm><anchor id="USESPNEGO"/><title>
use spnego (G)
</title><variablelist><varlistentry><listitem>
<para>This variable controls controls whether samba will try
to use Simple and Protected NEGOciation (as specified by rfc2478) with
WindowsXP and Windows2000 clients to agree upon an authentication mechanism.
</para>
<para>
Unless further issues are discovered with our SPNEGO
implementation, there is no reason this should ever be
disabled.</para>
<para>Default: <emphasis><parameter>use spnego</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>utmp directory</primary></indexterm><anchor id="UTMPDIRECTORY"/><title>
utmp directory (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is only available if Samba has
been configured and compiled with the option <literal>
--with-utmp</literal>. It specifies a directory pathname that is
used to store the utmp or utmpx files (depending on the UNIX system) that
record user connections to a Samba server. By default this is
not set, meaning the system will use whatever utmp file the
native system is set to use (usually
<filename moreinfo="none">/var/run/utmp</filename> on Linux).</para>
<para>Default: <emphasis><parameter>utmp directory</parameter> = <literal>
# Determined automatically</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>utmp directory</parameter> = <literal>/var/run/utmp</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>utmp</primary></indexterm><anchor id="UTMP"/><title>
utmp (G)
</title><variablelist><varlistentry><listitem>
<para>
This boolean parameter is only available if Samba has been configured and compiled
with the option <literal>--with-utmp</literal>. If set to
<constant>yes</constant> then Samba will attempt to add utmp or utmpx records
(depending on the UNIX system) whenever a connection is made to a Samba server.
Sites may use this to record the user connecting to a Samba share.
</para>
<para>
Due to the requirements of the utmp record, we are required to create a unique
identifier for the incoming user. Enabling this option creates an n^2 algorithm
to find this number. This may impede performance on large installations.
</para>
<para>Default: <emphasis><parameter>utmp</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>valid users</primary></indexterm><anchor id="VALIDUSERS"/><title>
valid users (S)
</title><variablelist><varlistentry><listitem>
<para>
This is a list of users that should be allowed to login to this service. Names starting with
'@', '+' and '&' are interpreted using the same rules as described in the
<parameter moreinfo="none">invalid users</parameter> parameter.
</para>
<para>
If this is empty (the default) then any user can login. If a username is in both this list
and the <parameter moreinfo="none">invalid users</parameter> list then access is denied
for that user.
</para>
<para>
The current servicename is substituted for <parameter moreinfo="none">%S</parameter>.
This is useful in the [homes] section.
</para>
<para>Default: <emphasis><parameter>valid users</parameter> = <literal>
# No valid users list (anyone can login) </literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>valid users</parameter> = <literal>greg, @pcusers</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>-valid</primary></indexterm><anchor id="-VALID"/><title>
-valid (S)
</title><variablelist><varlistentry><listitem>
<para> This parameter indicates whether a share is
valid and thus can be used. When this parameter is set to false,
the share will be in no way visible nor accessible.
</para>
<para>
This option should not be
used by regular users but might be of help to developers.
Samba uses this option internally to mark shares as deleted.
</para>
<para>Default: <emphasis><parameter>-valid</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>veto files</primary></indexterm><anchor id="VETOFILES"/><title>
veto files (S)
</title><variablelist><varlistentry><listitem>
<para>
This is a list of files and directories that are neither visible nor accessible. Each entry in
the list must be separated by a '/', which allows spaces to be included in the entry. '*' and '?'
can be used to specify multiple files or directories as in DOS wildcards.
</para>
<para>
Each entry must be a unix path, not a DOS path and must <emphasis>not</emphasis> include the
unix directory separator '/'.
</para>
<para>
Note that the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="CASESENSITIVE" xlink:href="smb.conf.5.html#CASESENSITIVE">case sensitive</link> option is applicable in vetoing files.
</para>
<para>
One feature of the veto files parameter that it is important to be aware of is Samba's behaviour when
trying to delete a directory. If a directory that is to be deleted contains nothing but veto files this
deletion will <emphasis>fail</emphasis> unless you also set the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="DELETEVETOFILES" xlink:href="smb.conf.5.html#DELETEVETOFILES">delete veto files</link>
parameter to <parameter moreinfo="none">yes</parameter>.
</para>
<para>
Setting this parameter will affect the performance of Samba, as it will be forced to check all files
and directories for a match as they are scanned.
</para>
<para>
Examples of use include:
<programlisting>
; Veto any files containing the word Security,
; any ending in .tmp, and any directory containing the
; word root.
veto files = /*Security*/*.tmp/*root*/
; Veto the Apple specific files that a NetAtalk server
; creates.
veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
</programlisting>
</para>
<para>Default: <emphasis><parameter>veto files</parameter> = <literal>No files or directories are vetoed.</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>veto oplock files</primary></indexterm><anchor id="VETOOPLOCKFILES"/><title>
veto oplock files (S)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is only valid when the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="OPLOCKS" xlink:href="smb.conf.5.html#OPLOCKS">oplocks</link>
parameter is turned on for a share. It allows the Samba administrator
to selectively turn off the granting of oplocks on selected files that
match a wildcarded list, similar to the wildcarded list used in the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="VETOFILES" xlink:href="smb.conf.5.html#VETOFILES">veto files</link> parameter.
</para>
<para>
You might want to do this on files that you know will be heavily contended
for by clients. A good example of this is in the NetBench SMB benchmark
program, which causes heavy client contention for files ending in
<filename moreinfo="none">.SEM</filename>. To cause Samba not to grant
oplocks on these files you would use the line (either in the [global]
section or in the section for the particular NetBench share.
</para>
<para>
An example of use is:
<programlisting>
veto oplock files = /.*SEM/
</programlisting>
</para>
<para>Default: <emphasis><parameter>veto oplock files</parameter> = <literal>
# No files are vetoed for oplock grants</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>vfs object</primary><see>vfs objects</see></indexterm><title>
<anchor id="VFSOBJECT"/>vfs object
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="VFSOBJECTS">vfs objects</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>vfs objects</primary></indexterm><anchor id="VFSOBJECTS"/><title>
vfs objects (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the backend names which
are used for Samba VFS I/O operations. By default, normal
disk I/O operations are used but these can be overloaded
with one or more VFS objects. </para>
<para>Default: <emphasis><parameter>vfs objects</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>vfs objects</parameter> = <literal>extd_audit recycle</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>volume</primary></indexterm><anchor id="VOLUME"/><title>
volume (S)
</title><variablelist><varlistentry><listitem>
<para>This allows you to override the volume label
returned for a share. Useful for CDROMs with installation programs
that insist on a particular volume label.</para>
<para>Default: <emphasis><parameter>volume</parameter> = <literal>
# the name of the share</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wide links</primary></indexterm><anchor id="WIDELINKS"/><title>
wide links (S)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether or not links
in the UNIX file system may be followed by the server. Links
that point to areas within the directory tree exported by the
server are always allowed; this parameter controls access only
to areas that are outside the directory tree being exported.</para>
<para>Note that setting this parameter can have a negative
effect on your server performance due to the extra system calls
that Samba has to do in order to perform the link checks.</para>
<para>Default: <emphasis><parameter>wide links</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind cache time</primary></indexterm><anchor id="WINBINDCACHETIME"/><title>
winbind cache time (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies the number of
seconds the <citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> daemon will cache
user and group information before querying a Windows NT server
again.</para>
<para>
This does not apply to authentication requests, these are always
evaluated in real time unless the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WINBINDOFFLINELOGON" xlink:href="smb.conf.5.html#WINBINDOFFLINELOGON">winbind offline logon</link> option has been enabled.
</para>
<para>Default: <emphasis><parameter>winbind cache time</parameter> = <literal>300</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind enum groups</primary></indexterm><anchor id="WINBINDENUMGROUPS"/><title>
winbind enum groups (G)
</title><variablelist><varlistentry><listitem>
<para>On large installations using <citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> it may be necessary to suppress
the enumeration of groups through the <literal>setgrent()</literal>,
<literal>getgrent()</literal> and
<literal>endgrent()</literal> group of system calls. If
the <parameter moreinfo="none">winbind enum groups</parameter> parameter is
<constant>no</constant>, calls to the <literal>getgrent()</literal> system
call will not return any data. </para>
<warning><para>Turning off group enumeration may cause some programs to behave oddly. </para></warning>
<para>Default: <emphasis><parameter>winbind enum groups</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind enum users</primary></indexterm><anchor id="WINBINDENUMUSERS"/><title>
winbind enum users (G)
</title><variablelist><varlistentry><listitem>
<para>On large installations using <citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> it may be
necessary to suppress the enumeration of users through the <literal>setpwent()</literal>,
<literal>getpwent()</literal> and
<literal>endpwent()</literal> group of system calls. If
the <parameter moreinfo="none">winbind enum users</parameter> parameter is
<constant>no</constant>, calls to the <literal>getpwent</literal> system call
will not return any data. </para>
<warning><para>Turning off user
enumeration may cause some programs to behave oddly. For
example, the finger program relies on having access to the
full user list when searching for matching
usernames. </para></warning>
<para>Default: <emphasis><parameter>winbind enum users</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind expand groups</primary></indexterm><anchor id="WINBINDEXPANDGROUPS"/><title>
winbind expand groups (G)
</title><variablelist><varlistentry><listitem>
<para>This option controls the maximum depth that winbindd
will traverse when flattening nested group memberships
of Windows domain groups. This is different from the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="WINBINDNESTEDGROUPS" xlink:href="smb.conf.5.html#WINBINDNESTEDGROUPS">winbind nested groups</link> option
which implements the Windows NT4 model of local group
nesting. The "winbind expand groups"
parameter specifically applies to the membership of
domain groups.</para>
<para>Be aware that a high value for this parameter can
result in system slowdown as the main parent winbindd daemon
must perform the group unrolling and will be unable to answer
incoming NSS or authentication requests during this time.</para>
<para>Default: <emphasis><parameter>winbind expand groups</parameter> = <literal>1</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind nested groups</primary></indexterm><anchor id="WINBINDNESTEDGROUPS"/><title>
winbind nested groups (G)
</title><variablelist><varlistentry><listitem>
<para>If set to yes, this parameter activates the support for nested
groups. Nested groups are also called local groups or
aliases. They work like their counterparts in Windows: Nested
groups are defined locally on any machine (they are shared
between DC's through their SAM) and can contain users and
global groups from any trusted SAM. To be able to use nested
groups, you need to run nss_winbind.</para>
<para>Default: <emphasis><parameter>winbind nested groups</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind normalize names</primary></indexterm><anchor id="WINBINDNORMALIZENAMES"/><title>
winbind normalize names (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether winbindd will replace
whitespace in user and group names with an underscore (_) character.
For example, whether the name "Space Kadet" should be
replaced with the string "space_kadet".
Frequently Unix shell scripts will have difficulty with usernames
contains whitespace due to the default field separator in the shell.
Do not enable this option if the underscore character is used in
account names within your domain
</para>
<para>Default: <emphasis><parameter>winbind normalize names</parameter> = <literal>no</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind normalize names</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind nss info</primary></indexterm><anchor id="WINBINDNSSINFO"/><title>
winbind nss info (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is designed to control how Winbind retrieves Name
Service Information to construct a user's home directory and login shell.
Currently the following settings are available:
<itemizedlist>
<listitem>
<para><parameter moreinfo="none">template</parameter>
- The default, using the parameters of <parameter moreinfo="none">template
shell</parameter> and <parameter moreinfo="none">template homedir</parameter>)
</para>
</listitem>
<listitem>
<para><parameter moreinfo="none"><sfu | rfc2307 ></parameter>
- When Samba is running in security = ads and your Active Directory
Domain Controller does support the Microsoft "Services for Unix" (SFU)
LDAP schema, winbind can retrieve the login shell and the home
directory attributes directly from your Directory Server. Note that
retrieving UID and GID from your ADS-Server requires to
use <parameter moreinfo="non">idmap backend</parameter> = ad
or <parameter moreinfo="non">idmap config DOMAIN:backend</parameter> = ad
as well.
</para>
</listitem>
</itemizedlist>
</para>
<para>Default: <emphasis><parameter>winbind nss info</parameter> = <literal>template</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind nss info</parameter> = <literal>template sfu</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind offline logon</primary></indexterm><anchor id="WINBINDOFFLINELOGON"/><title>
winbind offline logon (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is designed to control whether Winbind should
allow to login with the <parameter moreinfo="none">pam_winbind</parameter>
module using Cached Credentials. If enabled, winbindd will store user credentials
from successful logins encrypted in a local cache.
</para>
<para>Default: <emphasis><parameter>winbind offline logon</parameter> = <literal>false</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind offline logon</parameter> = <literal>true</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind refresh tickets</primary></indexterm><anchor id="WINBINDREFRESHTICKETS"/><title>
winbind refresh tickets (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter is designed to control whether Winbind should refresh Kerberos Tickets
retrieved using the <parameter moreinfo="none">pam_winbind</parameter> module.
</para>
<para>Default: <emphasis><parameter>winbind refresh tickets</parameter> = <literal>false</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind refresh tickets</parameter> = <literal>true</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind rpc only</primary></indexterm><anchor id="WINBINDRPCONLY"/><title>
winbind rpc only (G)
</title><variablelist><varlistentry><listitem>
<para>
Setting this parameter to <literal>yes</literal> forces
winbindd to use RPC instead of LDAP to retrieve information from Domain
Controllers.
</para>
<para>Default: <emphasis><parameter>winbind rpc only</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind separator</primary></indexterm><anchor id="WINBINDSEPARATOR"/><title>
winbind separator (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter allows an admin to define the character
used when listing a username of the form of <replaceable>DOMAIN
</replaceable>\<replaceable>user</replaceable>. This parameter
is only applicable when using the <filename moreinfo="none">pam_winbind.so</filename>
and <filename moreinfo="none">nss_winbind.so</filename> modules for UNIX services.
</para>
<para>Please note that setting this parameter to + causes problems
with group membership at least on glibc systems, as the character +
is used as a special character for NIS in /etc/group.</para>
<para>Default: <emphasis><parameter>winbind separator</parameter> = <literal>'\'</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind separator</parameter> = <literal>+</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind trusted domains only</primary></indexterm><anchor id="WINBINDTRUSTEDDOMAINSONLY"/><title>
winbind trusted domains only (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is designed to allow Samba servers that are members
of a Samba controlled domain to use UNIX accounts distributed via NIS,
rsync, or LDAP as the uid's for winbindd users in the hosts primary domain.
Therefore, the user <literal>DOMAIN\user1</literal> would be mapped to
the account user1 in /etc/passwd instead of allocating a new uid for him or her.
</para>
<para>
This parameter is now deprecated in favor of the newer idmap_nss backend.
Refer to the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="IDMAPDOMAINS" xlink:href="smb.conf.5.html#IDMAPDOMAINS">idmap domains</link> smb.conf option and
the <citerefentry><refentrytitle>idmap_nss</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> man page for more information.
</para>
<para>Default: <emphasis><parameter>winbind trusted domains only</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>winbind use default domain</primary></indexterm><anchor id="WINBINDUSEDEFAULTDOMAIN"/><title>
winbind use default domain (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter specifies whether the
<citerefentry><refentrytitle>winbindd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> daemon should operate on users
without domain component in their username. Users without a domain
component are treated as is part of the winbindd server's own
domain. While this does not benifit Windows users, it makes SSH, FTP and
e-mail function in a way much closer to the way they
would in a native unix system.</para>
<para>Default: <emphasis><parameter>winbind use default domain</parameter> = <literal>no</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>winbind use default domain</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wins hook</primary></indexterm><anchor id="WINSHOOK"/><title>
wins hook (G)
</title><variablelist><varlistentry><listitem>
<para>When Samba is running as a WINS server this
allows you to call an external program for all changes to the
WINS database. The primary use for this option is to allow the
dynamic update of external name resolution databases such as
dynamic DNS.</para>
<para>The wins hook parameter specifies the name of a script
or executable that will be called as follows:</para>
<para><literal>wins_hook operation name nametype ttl IP_list</literal></para>
<itemizedlist>
<listitem>
<para>The first argument is the operation and is
one of "add", "delete", or
"refresh". In most cases the operation
can be ignored as the rest of the parameters
provide sufficient information. Note that
"refresh" may sometimes be called when
the name has not previously been added, in that
case it should be treated as an add.</para>
</listitem>
<listitem>
<para>The second argument is the NetBIOS name. If the
name is not a legal name then the wins hook is not called.
Legal names contain only letters, digits, hyphens, underscores
and periods.</para>
</listitem>
<listitem>
<para>The third argument is the NetBIOS name
type as a 2 digit hexadecimal number. </para>
</listitem>
<listitem>
<para>The fourth argument is the TTL (time to live)
for the name in seconds.</para>
</listitem>
<listitem>
<para>The fifth and subsequent arguments are the IP
addresses currently registered for that name. If this list is
empty then the name should be deleted.</para>
</listitem>
</itemizedlist>
<para>An example script that calls the BIND dynamic DNS update
program <literal>nsupdate</literal> is provided in the examples
directory of the Samba source code. </para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wins proxy</primary></indexterm><anchor id="WINSPROXY"/><title>
wins proxy (G)
</title><variablelist><varlistentry><listitem>
<para>This is a boolean that controls if <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> will respond to broadcast name
queries on behalf of other hosts. You may need to set this
to <constant>yes</constant> for some older clients.</para>
<para>Default: <emphasis><parameter>wins proxy</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wins server</primary></indexterm><anchor id="WINSSERVER"/><title>
wins server (G)
</title><variablelist><varlistentry><listitem>
<para>This specifies the IP address (or DNS name: IP
address for preference) of the WINS server that <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> should register with. If you have a WINS server on
your network then you should set this to the WINS server's IP.</para>
<para>You should point this at your WINS server if you have a
multi-subnetted network.</para>
<para>If you want to work in multiple namespaces, you can
give every wins server a 'tag'. For each tag, only one
(working) server will be queried for a name. The tag should be
separated from the ip address by a colon.
</para>
<note><para>You need to set up Samba to point
to a WINS server if you have multiple subnets and wish cross-subnet
browsing to work correctly.</para></note>
<para>See the chapter in the Samba3-HOWTO on Network Browsing.</para>
<para>Default: <emphasis><parameter>wins server</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>wins server</parameter> = <literal>mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61
# For this example when querying a certain name, 192.19.200.1 will
be asked first and if that doesn't respond 192.168.2.61. If either
of those doesn't know the name 192.168.3.199 will be queried.</literal>
</emphasis>
</para><para>Example: <emphasis><parameter>wins server</parameter> = <literal>192.9.200.1 192.168.2.61</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wins support</primary></indexterm><anchor id="WINSSUPPORT"/><title>
wins support (G)
</title><variablelist><varlistentry><listitem>
<para>This boolean controls if the <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry> process in Samba will act as a WINS server. You should
not set this to <constant>yes</constant> unless you have a multi-subnetted network and
you wish a particular <literal>nmbd</literal> to be your WINS server.
Note that you should <emphasis>NEVER</emphasis> set this to <constant>yes</constant>
on more than one machine in your network.</para>
<para>Default: <emphasis><parameter>wins support</parameter> = <literal>no</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>workgroup</primary></indexterm><anchor id="WORKGROUP"/><title>
workgroup (G)
</title><variablelist><varlistentry><listitem>
<para>This controls what workgroup your server will
appear to be in when queried by clients. Note that this parameter
also controls the Domain name used with
the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = domain</link>
setting.</para>
<para>Default: <emphasis><parameter>workgroup</parameter> = <literal>WORKGROUP</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>workgroup</parameter> = <literal>MYGROUP</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>writable</primary><see>writeable</see></indexterm><title>
<anchor id="WRITABLE"/>writable
</title><variablelist><varlistentry><listitem><para>This parameter is a synonym for <link linkend="WRITEABLE">writeable</link>.</para></listitem></varlistentry></variablelist>
</section><section><indexterm significance="preferred"><primary>writeable</primary></indexterm><anchor id="WRITEABLE"/><title>
writeable (S)
</title><variablelist><varlistentry><listitem>
<para>Inverted synonym for <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only</link>.</para>
<para><emphasis>No default</emphasis></para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>write cache size</primary></indexterm><anchor id="WRITECACHESIZE"/><title>
write cache size (S)
</title><variablelist><varlistentry><listitem>
<para>If this integer parameter is set to non-zero value,
Samba will create an in-memory cache for each oplocked file
(it does <emphasis>not</emphasis> do this for
non-oplocked files). All writes that the client does not request
to be flushed directly to disk will be stored in this cache if possible.
The cache is flushed onto disk when a write comes in whose offset
would not fit into the cache or when the file is closed by the client.
Reads for the file are also served from this cache if the data is stored
within it.</para>
<para>This cache allows Samba to batch client writes into a more
efficient write size for RAID disks (i.e. writes may be tuned to
be the RAID stripe size) and can improve performance on systems
where the disk subsystem is a bottleneck but there is free
memory for userspace programs.</para>
<para>The integer parameter specifies the size of this cache
(per oplocked file) in bytes.</para>
<para>Default: <emphasis><parameter>write cache size</parameter> = <literal>0</literal>
</emphasis>
</para>
<para>Example: <emphasis><parameter>write cache size</parameter> = <literal>262144
# for a 256k cache size per file</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>write list</primary></indexterm><anchor id="WRITELIST"/><title>
write list (S)
</title><variablelist><varlistentry><listitem>
<para>
This is a list of users that are given read-write access to a service. If the
connecting user is in this list then they will be given write access, no matter
what the <link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="READONLY" xlink:href="smb.conf.5.html#READONLY">read only</link> option is set to. The list can
include group names using the @group syntax.
</para>
<para>
Note that if a user is in both the read list and the write list then they will be
given write access.
</para>
<para>
By design, this parameter will not work with the
<link xmlns:xlink="http://www.w3.org/1999/xlink" linkend="SECURITY" xlink:href="smb.conf.5.html#SECURITY">security = share</link> in Samba 3.0.
</para>
<para>Default: <emphasis><parameter>write list</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>write list</parameter> = <literal>admin, root, @staff</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>write raw</primary></indexterm><anchor id="WRITERAW"/><title>
write raw (G)
</title><variablelist><varlistentry><listitem>
<para>This parameter controls whether or not the server
will support raw write SMB's when transferring data from clients.
You should never need to change this parameter.</para>
<para>Default: <emphasis><parameter>write raw</parameter> = <literal>yes</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
<section><indexterm significance="preferred"><primary>wtmp directory</primary></indexterm><anchor id="WTMPDIRECTORY"/><title>
wtmp directory (G)
</title><variablelist><varlistentry><listitem>
<para>
This parameter is only available if Samba has been configured and compiled with the option <literal>
--with-utmp</literal>. It specifies a directory pathname that is used to store the wtmp or wtmpx files (depending on
the UNIX system) that record user connections to a Samba server. The difference with the utmp directory is the fact
that user info is kept after a user has logged out.
</para>
<para>
By default this is not set, meaning the system will use whatever utmp file the native system is set to use (usually
<filename moreinfo="none">/var/run/wtmp</filename> on Linux).
</para>
<para>Default: <emphasis><parameter>wtmp directory</parameter> = <literal/>
</emphasis>
</para>
<para>Example: <emphasis><parameter>wtmp directory</parameter> = <literal>/var/log/wtmp</literal>
</emphasis>
</para>
</listitem></varlistentry></variablelist>
</section>
</section>
</refsect1>
<refsect1>
<title>WARNINGS</title>
<para>
Although the configuration file permits service names to contain spaces, your client software may not.
Spaces will be ignored in comparisons anyway, so it shouldn't be a problem - but be aware of the possibility.
</para>
<para>
On a similar note, many clients - especially DOS clients - limit service names to eight characters.
<citerefentry><refentrytitle>smbd</refentrytitle> <manvolnum>8</manvolnum></citerefentry> has no such
limitation, but attempts to connect from such clients will fail if they truncate the service names. For this
reason you should probably keep your service names down to eight characters in length.
</para>
<para>
Use of the <literal>[homes]</literal> and <literal>[printers]</literal> special sections make life
for an administrator easy, but the various combinations of default attributes can be tricky. Take extreme
care when designing these sections. In particular, ensure that the permissions on spool directories are
correct.
</para>
</refsect1>
<refsect1>
<title>VERSION</title>
<para>This man page is correct for version 3 of the Samba suite.</para>
</refsect1>
<refsect1>
<title>SEE ALSO</title>
<para>
<citerefentry><refentrytitle>samba</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbpasswd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>swat</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>nmbd</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbclient</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>nmblookup</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>testparm</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>testprns</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>AUTHOR</title>
<para>
The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed
by the Samba Team as an Open Source project similar to the way the Linux kernel is developed.
</para>
<para>
The original Samba man pages were written by Karl Auer. The man page sources were converted to YODL format (another
excellent piece of Open Source software, available at <ulink noescape="1" url="ftp://ftp.icce.rug.nl/pub/unix/">
ftp://ftp.icce.rug.nl/pub/unix/</ulink>) and updated for the Samba 2.0 release by Jeremy Allison. The conversion
to DocBook for Samba 2.2 was done by Gerald Carter. The conversion to DocBook XML 4.2 for Samba 3.0 was done by
Alexander Bokovoy.
</para>
</refsect1>
</refentry>
|